问题标签 [channels]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - Go中的死锁,两个例程拆分工作
我在 go 中遇到了一个死锁问题。
该程序接受一个整数数组 a,并将其分成两部分。然后它将这两个部分放在两个不同的例程中并总结所有元素。在此之后,它应该在通道 res 中发送两个结果。然后应该将两个 res(现在是 ch)加在一起并打印。
我的问题:我试图通过大量移动关闭函数来解决死锁问题,但似乎没有任何帮助。显然,它只适用于一个例程 Add 运行。
logging - 如何在 Silex 中为 Monolog 设置不同的文件
主题。我想在不同的文件中记录一些信息,以搜索 Symfony 2 的很多示例,但我使用 Silex 和 yaml 配置。如何设置它?
我目前的配置
java - 使用套接字制作多线程聊天服务器
我正在使用 TCP 套接字对服务器聊天进行编码。我实施了公共和私人信息。现在,我该如何制作频道?如何将通道与套接字客户端链接?我做了一个String[]
这样的:
例如:
- 0-通道1
- 1通道2
所有用户都可以使用命令查看创建的频道/seechannels
但到目前为止,一个频道只是一个String
. 我现在如何使用 将通道与套接字链接/join channel1
?
go - 如何关闭多个 goroutine 正在发送的通道?
我正在尝试并行进行一些计算。该程序的设计使得每个工作 goroutine 将解决的难题的“碎片”发送回控制器 goroutine,该控制器等待接收并组装从工作例程发送的所有内容。
关闭单通道的惯用 Go 是什么?我不能在每个 goroutine 的通道上调用 close,因为那样我可能会在关闭的通道上发送。同样,没有办法预先确定哪个 goroutine 将首先完成。这里需要一个 sync.WaitGroup 吗?
http - 在 http 处理程序中使用 goroutine 和通道
我已经实现了一个非常简单的 twitter 客户端阅读器:
我现在想为它构建一个简单的 Web 客户端并让它显示 twitter 结果。但我对在 http 处理程序中调用 goroutines 持谨慎态度。有人指出我正确的方向吗?
java - Cometd 如何动态制作和订阅频道?
我正在尝试创建一个非常简单的 cometD 应用程序。主要是我想动态创建频道。首先,我尝试了 localsession 频道,并在创建后通过客户端 javascript 订阅了它们。它工作完美,但不适用于动态频道创建。让我通过 javascript 传递 rom 变量,ROOM: 'firstroom'
这将创建一个像"/members/firstroom".
但是在另一个用户(例如 ROOM)的另一个呼叫中:'anotherroom' 它创建了另一个房间但破坏了旧房间。
简而言之,我希望所有动态创建的通道都存储在内存中。我试过的客户会话:
然后我尝试像这样在服务器上创建和订阅:
但我在想服务器端订阅将如何改变客户端 html 代码。如何
将取代
manage_members 在服务器端订阅中的位置。
直截了当如何动态创建和存储频道?
concurrency - 通道是否通过引用隐式传递
go tour 有这个频道示例:https ://tour.golang.org/concurrency/2
通道 c 在 sum 函数中被修改,并且在函数终止后更改仍然存在。显然 c 是通过引用传递的,但没有创建指向 c 的指针。通道是否在 go 中通过引用隐式传递?
go - Go 例程从 for 循环开始 - 一个或多个通道?
我想使用从 for 循环调用的 goroutine 加载一些 json 文件(“.json”)。我想让加载并行化(在加载其他文件的同时处理第一个文件)。
Q1。由于文件的数量可能会有所不同(要添加的新文件),我将使用带有文件名的(文件)列表(仅在此示例中自动生成名称),因此我想使用 for 循环。最佳?
Q2。什么是最有效的渠道使用。
第三季度。如果每个加载操作都需要一个唯一的通道(如下面的示例代码),我将如何定义通道?
示例代码(要压缩并能够使用文件名列表加载文件):
编辑: 我根据“Tom”建议的想法设计了一个简化的测试解决方案(见下文)。就我而言,我将任务分为三个阶段,每个阶段使用一个通道来控制执行。但是,我倾向于使用此代码陷入死锁(请参阅执行结果和代码下方的注释)。
在PlayGround上运行此代码。
如何避免此代码中的死锁?:
请注意,此代码不会访问文件系统,因此它应该在 PlayGround 上运行。
EDIT2 : - 除了不安全的“ChannelTracer”之外,我只能通过使用与文件任务相同次数的 doneProcessingChannel 来避免死锁。
在此处运行代码:Playground
// RIL
go - 我的频道还剩多少容量?
有没有办法在 Go 中查看我的异步通道中剩余多少存储空间?
例如
opencv - OpenCV:合并分离的 JPEG 拜耳通道
我有一台相机,它为 4 个不同的拜耳通道(B、G1、G2、R)提供 4 个分离的 JPEG 图像。
我想将其转换为彩色图像。
我目前正在做的是解压缩 jpeg,手动恢复“原始”图像并使用 cvtColor 转换为彩色图像。但这太慢了。我怎样才能做得更好?
很明显,需要更多时间的是解码 jpeg 图像。有人可以使用一些建议/技巧来加快此代码的速度吗?