带有多余通道的大猩猩 websocket 示例?
gorilla websocket example with a superfluous channel?
在这个简单的例子中,我不明白频道“完成”的原因
https://github.com/gorilla/websocket/blob/master/examples/echo/client.go
通道是结构类型,使用了三次
- Z41 延迟关闭(完成)
- Z57 案例<-完成:
- Z77 案例<-完成:
没有人写信到频道。所以 2. 和 3. 会阻塞,
据我所知。我将不胜感激任何解释
这是如何工作的。
After calling close, and after any previously sent values have been received, receive operations will return the zero value for the channel's type without blocking.
调用 close(done)
后 case <-done:
分支不会阻塞。
通常使用接近信号完成的通道,因为发出完成信号的 goroutine 不需要知道等待完成的 goroutine 的数量。此外,通道关闭永远不会阻塞等待接收者。
在这个简单的例子中,我不明白频道“完成”的原因
https://github.com/gorilla/websocket/blob/master/examples/echo/client.go
通道是结构类型,使用了三次
- Z41 延迟关闭(完成)
- Z57 案例<-完成:
- Z77 案例<-完成:
没有人写信到频道。所以 2. 和 3. 会阻塞, 据我所知。我将不胜感激任何解释 这是如何工作的。
After calling close, and after any previously sent values have been received, receive operations will return the zero value for the channel's type without blocking.
调用 close(done)
后 case <-done:
分支不会阻塞。
通常使用接近信号完成的通道,因为发出完成信号的 goroutine 不需要知道等待完成的 goroutine 的数量。此外,通道关闭永远不会阻塞等待接收者。