我有一个 TCP 套接字和 2 个 goroutines 读取和写入流。 我正在编写一个从 channel 读取数据的 goroutine。 如果 TCP 连接断开,则从 go 例程中读取将检测到错误并停止。
但是我如何释放一个有 goroutine 写入的 channel ?
是否有像 chan.release()
这样的方法,或者我应该发布一个特殊的数据包来告诉 goroutine 结束?
最佳答案
close(ch)
将关闭 channel 。
如果您在 channel 上进行测距,则 for 循环将在 channel 关闭时退出。
val, ok := <-ch
允许您检查关闭的 channel 。 ok 将是一个 bool 值,如果 ch 关闭则为 false 如果 ch 打开则为 true。
关于go - 在 Go 中发布 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14837970/