channel 相关问题

一种通信结构,支持在执行线程之间发送对象。您可以并且应该使用此标记来引用通用编程概念或各种语言或库中的特定实现。在后一种情况下,不要忘记添加适当的标签。

在GO中汇总频道行为 我在GO中具有以下网站状态检查器代码: 包装主 进口 ( “ FMT” “ net/http” ) func main(){ ls:= []字符串{ “ http://google.com” ...

package main import ( "fmt" "net/http" ) func main() { ls := []string{ "http://google.com", "http://facebook.com", "http://amazon.com", "http://golang.org", } c := make(chan string) for _, url := range ls{ go checkStatus(url,c) } fmt.Println(<- c) fmt.Println(<- c) fmt.Println(<- c) fmt.Println(<- c) fmt.Println(<- c) } func checkStatus(url string, ch chan string) { _, err := http.Get(url) if err!=nil{ fmt.Println(url,"not working fine") ch <- "might be down!!" return } fmt.Println(url, "is up!!!") ch <- "It is up" }

回答 1 投票 0

如何使用仅包含一个未知值

我有一个频道,如下所示: [[a,b,c,d],1] [[a,b,c,d],2] [[A,B,C],3] [[A,B,V],4] [[A],5] [[A1,B1,D],7] [[A1,B1,D],8] 我有一个用户定义的参数。 ...

回答 1 投票 0




elixir/phoenix测试GraphQL订阅通道柜和订阅柜设置

对于我的Elixir项目,我在我的lib/graphql_user_web/schema/subscriptions/user.ex中有以下订阅。 defmodule graphqluserweb.schema.subscriptions.user do 使用Absinthe.schema.Notation

回答 1 投票 0

context- withDeadline()vs withtimeout()[闭合]

贝洛代码: //示例程序显示如何使用defeDeadline函数 //上下文软件包。 包装主 进口 ( “语境” “ FMT” “时间” ) 类型...

回答 1 投票 0

Maya python 尝试模板/取消模板通道

我是 Maya 编程新手。 我正在尝试制作一个脚本来检查和模板化/取消模板化通道。 我在图形编辑器中打开了一个名为“SKEL01_002:main_C_001_CTRL”的变换节点。然后我

回答 1 投票 0

Golang、缓冲通道及其关闭

我有一个代码片段,在这里,消息通道被缓冲,我在运行时关闭缓冲通道,这个代码片段是否有效,或者我是否必须明确检查某些数据是否仍然存在...

回答 1 投票 0

sync.WaitGroup 相对于 Channels 有什么优势?

我正在开发一个并发 Go 库,我偶然发现了 goroutine 之间两种不同的同步模式,其结果相似: 等待组 包主 进口 ( “fmt”...

回答 7 投票 0

Android 10 java.lang.SecurityException:不允许使用前台服务删除频道 MyNotificationChannel

我从线程创建通知: 最终NotificationManager经理=(NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE); NotificationChannel chan = 新的NotificationC...

回答 3 投票 0

滤波器如何在 CNN 的第一层中运行 RGB 图像?

我正在看这个图层的打印输出。 我意识到,这显示了输入/输出,但没有显示 RGB 通道的处理方式。 如果你看一下 block1_conv1,它会显示“Conv2D”。但是...

回答 3 投票 0

Nextflow_groovy - 输入名称映射问题

我一直在尝试解决一个非常简单但令人困惑的任务。基本上尝试找到目标输入,以便我可以传递到以下 nextflow 模块。 // 假设目标输入

回答 1 投票 0

为什么goroutines会陷入僵局?

我收到这些错误 致命错误:所有 goroutine 都在睡觉 - 死锁! `goroutine 1 [semacquire]: 同步.runtime_Semacquire(0xc0000081e0?) C:/Program Files/Go/src/runtime/sema.go:71 +0x25 同步。(*

回答 1 投票 0

具有无缓冲通道的 Golang 例程

我正在读《Go in action》这本书。 这是对无缓冲通道的描述: 无缓冲通道是没有能力保存任何值的通道 在收到之前。这些类型的茶...

回答 4 投票 0

频道读取工作一段时间后失败

我有一个长期运行的类(不是BackgroundService),它有一个内部通道,我用它来缓冲传入的请求。 存在Enqueue方法,如下: 公共异步任务 我有一个长时间运行的类(不是BackgroundService),它有一个内部通道,我用它来缓冲传入的请求。 存在一个Enqueue方法,如下: public async Task<bool> Enqueue(IMessage message) { bool result; try { if (_cts.IsCancellationRequested) { _logger.LogInformation("{TypeName} cannot be enqueued because the queue is stopped.", message.GetType().Name); result = false; } else { await _messageChannel.Writer.WriteAsync(message); result = true; _logger.LogInformation("Message {TypeName} written to internal channel.", message.GetType().Name); } } catch (ChannelClosedException) { _logger.LogInformation("{TypeName} cannot be enqueued because the channel is closed.", message.GetType().Name); result = false; } catch (Exception e) { _logger.LogError(e, "Error enqueuing {TypeName}", message.GetType().Name); result = false; } return result; } 在类构造函数中,使用以下命令启动消息读取器循环: Task.Run(() => _MainMessageLoop(_cts.Token)); _MainMessageLoop 看起来像: private async Task _MainMessageLoop(CancellationToken stoppingToken) { try { var channelReader = _messageChannel.Reader; while (await channelReader.WaitToReadAsync(stoppingToken).ConfigureAwait(false)) { try { var item = await channelReader.ReadAsync(stoppingToken).ConfigureAwait(false); _logger.LogInformation("Message {TypeName} read from internal channel.", item.GetType().Name); await _DoSomethingAsync(item); } catch (Exception e) { _logger.LogError(e, "Error doing something"); } } _logger.LogInformation("Channel reader loop exited {MethodName}.", nameof(_MainMessageLoop)); } catch (OperationCanceledException) { _logger.LogDebug("OperationCanceled {MethodName}", nameof(_MainMessageLoop)); throw; } catch (Exception e) { _logger.LogError(e, "Error in {MethodName}", nameof(_MainMessageLoop)); throw; } } 这在一段时间内效果很好(几个小时,消息负载非常轻),然后就停止了。 根据日志,写入仍在发生,但读取端卡住了。 没有与读取失败、抛出异常等相关的日志消息。读取循环似乎停止了。 我尝试了有界/无界、TryRead与ReadAsync的几种组合,每种组合的结果大致相同。 写入仍在发生(这意味着该对象还活着并且运行良好),没有任何运气。大多数文档似乎都没有暗示这一点,但我认为我正在做一些不符合预期的事情,或者某个地方存在错误。我在应用程序中使用的其他通道工作正常,但它们是 HostedService 级别的单例。 有人遇到过类似的事情吗? 我的猜测如下,GC 清理了你的Task。在 _MainMessageLoop 内部初始等待之后,执行将返回到 Task.Run,这样 Task 就“结束”了,因为之后没有执行任何操作。如果没有人持有对从 Task 创建的 Task.Run 的引用,它最终将被 GC 清理。将 Task 存储为属性或字段,然后重试。在构造函数内部启动 Task 的想法是一个坏主意,特别是如果 Task 未存储在类内部,因为它可能会导致 UnobservedTaskException。

回答 1 投票 0

Django 通道重新加载或刷新 self.scope['session'] 值

我有多个消费者,并且想使用 self.scope['sessions'] 将值从一个消费者传递到另一个消费者。它们是同时创建和初始化的。 设置并保存后(...

回答 1 投票 0

解释缓冲和非缓冲Go通道之间的区别

考虑以下 Go 代码: 包主 导入“fmt” 函数主() { buf := make(chan 字符串, 1) 缓冲<- "Hello, 世界" fmt.Println(<-buf) nonbuf := make...

回答 1 投票 0

Go:用于通用数据处理的接口{}的chan

我目前正在尝试用golang编写一些生产者和消费者代码,试图保持它的通用性。 它看起来像这样。 函数生产者 () { 共享数据通道 <- getData() //retu...

回答 1 投票 0

实现由Kraus算子表示的量子通道

我有一个量子通道,可以用Kraus算子来表达,但是这个通道会在原来的基础上添加另一个希尔伯特空间,比如从HA到HA张量HB。我怎样才能构建一个单一的

回答 1 投票 0

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.