问题标签 [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.

0 投票
1 回答
262 浏览

go - Go中的死锁,两个例程拆分工作

我在 go 中遇到了一个死锁问题。

该程序接受一个整数数组 a,并将其分成两部分。然后它将这两个部分放在两个不同的例程中并总结所有元素。在此之后,它应该在通道 res 中发送两个结果。然后应该将两个 res(现在是 ch)加在一起并打印。

我的问题:我试图通过大量移动关闭函数来解决死锁问题,但似乎没有任何帮助。显然,它只适用于一个例程 Add 运行。

0 投票
2 回答
2589 浏览

logging - 如何在 Silex 中为 Monolog 设置不同的文件

主题。我想在不同的文件中记录一些信息,以搜索 Symfony 2 的很多示例,但我使用 Silex 和 yaml 配置。如何设置它?

我目前的配置

0 投票
1 回答
238 浏览

java - 使用套接字制作多线程聊天服务器

我正在使用 TCP 套接字对服务器聊天进行编码。我实施了公共和私人信息。现在,我该如何制作频道?如何将通道与套接字客户端链接?我做了一个String[]这样的:

例如:

  • 0-通道1
  • 1通道2

所有用户都可以使用命令查看创建的频道/seechannels

但到目前为止,一个频道只是一个String. 我现在如何使用 将通道与套接字链接/join channel1

0 投票
2 回答
4244 浏览

go - 如何关闭多个 goroutine 正在发送的通道?

我正在尝试并行进行一些计算。该程序的设计使得每个工作 goroutine 将解决的难题的“碎片”发送回控制器 goroutine,该控制器等待接收并组装从工作例程发送的所有内容。

关闭单通道的惯用 Go 是什么?我不能在每个 goroutine 的通道上调用 close,因为那样我可能会在关闭的通道上发送。同样,没有办法预先确定哪个 goroutine 将首先完成。这里需要一个 sync.WaitGroup 吗?

0 投票
1 回答
1728 浏览

http - 在 http 处理程序中使用 goroutine 和通道

我已经实现了一个非常简单的 twitter 客户端阅读器:

我现在想为它构建一个简单的 Web 客户端并让它显示 twitter 结果。但我对在 http 处理程序中调用 goroutines 持谨慎态度。有人指出我正确的方向吗?

0 投票
2 回答
1284 浏览

java - Cometd 如何动态制作和订阅频道?

我正在尝试创建一个非常简单的 cometD 应用程序。主要是我想动态创建频道。首先,我尝试了 localsession 频道,并在创建后通过客户端 javascript 订阅了它们。它工作完美,但不适用于动态频道创建。让我通过 javascript 传递 rom 变量,ROOM: 'firstroom' 这将创建一个像"/members/firstroom".

但是在另一个用户(例如 ROOM)的另一个呼叫中:'anotherroom' 它创建了另一个房间但破坏了旧房间。

简而言之,我希望所有动态创建的通道都存储在内存中。我试过的客户会话:

然后我尝试像这样在服务器上创建和订阅:

但我在想服务器端订阅将如何改变客户端 html 代码。如何

将取代

manage_members 在服务器端订阅中的位置。

直截了当如何动态创建和存储频道?

0 投票
4 回答
34356 浏览

concurrency - 通道是否通过引用隐式传递

go tour 有这个频道示例:https ://tour.golang.org/concurrency/2

通道 c 在 sum 函数中被修改,并且在函数终止后更改仍然存在。显然 c 是通过引用传递的,但没有创建指向 c 的指针。通道是否在 go 中通过引用隐式传递?

0 投票
2 回答
2542 浏览

go - Go 例程从 for 循环开始 - 一个或多个通道?

我想使用从 for 循环调用的 goroutine 加载一些 json 文件(“.json”)。我想让加载并行化(在加载其他文件的同时处理第一个文件)。

Q1。由于文件的数量可能会有所不同(要添加的新文件),我将使用带有文件名的(文件)列表(仅在此示例中自动生成名称),因此我想使用 for 循环。最佳?

Q2。什么是最有效的渠道使用。

第三季度。如果每个加载操作都需要一个唯一的通道(如下面的示例代码),我将如何定义通道?

示例代码(要压缩并能够使用文件名列表加载文件):


编辑: 我根据“Tom”建议的想法设计了一个简化的测试解决方案(见下文)。就我而言,我将任务分为三个阶段,每个阶段使用一个通道来控制执行。但是,我倾向于使用此代码陷入死锁(请参阅执行结果和代码下方的注释)。

在PlayGround上运行此代码。

如何避免此代码中的死锁?:

请注意,此代码不会访问文件系统,因此它应该在 PlayGround 上运行

EDIT2 : - 除了不安全的“ChannelTracer”之外,我只能通过使用与文件任务相同次数的 doneProcessingChannel 来避免死锁。
在此处运行代码:Playground

// RIL

0 投票
1 回答
101 浏览

go - 我的频道还剩多少容量?

有没有办法在 Go 中查看我的异步通道中剩余多少存储空间?

例如

0 投票
1 回答
663 浏览

opencv - OpenCV:合并分离的 JPEG 拜耳通道

我有一台相机,它为 4 个不同的拜耳通道(B、G1、G2、R)提供 4 个分离的 JPEG 图像。

我想将其转换为彩色图像。

我目前正在做的是解压缩 jpeg,手动恢复“原始”图像并使用 cvtColor 转换为彩色图像。但这太慢了。我怎样才能做得更好?

很明显,需要更多时间的是解码 jpeg 图像。有人可以使用一些建议/技巧来加快此代码的速度吗?