登录
首页 >  Golang >  Go问答

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

来源:stackoverflow

时间:2024-04-13 13:18:34 420浏览 收藏

偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《带有多余通道的大猩猩 websocket 示例?》,这篇文章主要会讲到等等知识点,不知道大家对其都有多少了解,下面我们就一起来看一吧!当然,非常希望大家能多多评论,给出合理的建议,我们一起学习,一起进步!

问题内容

在这个简单的示例中,我不明白通道“完成”的原因

https://github.com/gorilla/websocket/blob/master/examples/echo/client.go

通道是结构体类型并且使用了三次

  1. Z41 推迟关闭(完成)
  2. Z57 案例 <-完成:
  3. Z77 案例 <-完成:

没有人写入通道。所以 2. 和 3. 将阻塞, 据我所知。如果有任何解释,我将不胜感激 这是如何工作的。


解决方案


specification says

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

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

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

终于介绍完啦!小伙伴们,这篇关于《带有多余通道的大猩猩 websocket 示例?》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>