Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个 TCP 套接字和 2 个 goroutine 读取和写入流。我正在编写一个从通道读取数据的 goroutine。如果 TCP 连接被丢弃,那么从 go 例程中读取将检测到错误并停止。
但是我如何释放一个有 goroutine 写入的频道呢?
是否有类似的方法chan.release()或者我应该发布一个特殊的数据包来告诉 goroutine 结束?
chan.release()
close(ch)将关闭频道。
close(ch)
如果您在通道上测距,则当通道关闭时 for 循环将退出。 val, ok := <-ch允许您检查关闭的频道。ok 将是一个布尔值,如果 ch 关闭,则为 false 如果 ch 打开,则为 true。
val, ok := <-ch