3

我有一个 TCP 套接字和 2 个 goroutine 读取和写入流。我正在编写一个从通道读取数据的 goroutine。如果 TCP 连接被丢弃,那么从 go 例程中读取将检测到错误并停止。

但是我如何释放一个有 goroutine 写入的频道呢?

是否有类似的方法chan.release()或者我应该发布一个特殊的数据包来告诉 goroutine 结束?

4

1 回答 1

5

close(ch)将关闭频道。

如果您在通道上测距,则当通道关闭时 for 循环将退出。 val, ok := <-ch允许您检查关闭的频道。ok 将是一个布尔值,如果 ch 关闭,则为 false 如果 ch 打开,则为 true。

于 2013-02-12T17:22:06.633 回答