为了账号安全,请及时绑定邮箱和手机立即绑定

带有多余通道的大猩猩 websocket 示例?

带有多余通道的大猩猩 websocket 示例?

Go
宝慕林4294392 2022-07-25 11:17:10
我不明白频道“完成”的原因,在这个简单的例子中https://github.com/gorilla/websocket/blob/master/examples/echo/client.go通道是结构类型,使用了 3 次Z41 延迟关闭(完成)Z57 案例 <-完成:Z77 案例 <-完成:没有人写入频道。所以 2. 和 3. 会阻塞,据我所知。我将不胜感激任何解释这是如何工作的。
查看完整描述

1 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

规范说:

在调用 close 之后,并且在接收到任何先前发送的值之后,接收操作将返回通道类型的零值而不会阻塞。

调用case <-done:后分支不会阻塞。close(done)

通常使用接近信号完成的通道,因为发出完成信号的 goroutine 不需要知道等待完成的 goroutine 的数量。此外,通道关闭永远不会阻塞等待接收者。


查看完整回答
反对 回复 2022-07-25
  • 1 回答
  • 0 关注
  • 105 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号