由于Go的理念,通道应仅由发件人关闭。当一个频道是双向的时候应该在哪里关闭?
答案 0 :(得分:1)
这个问题有点难以解释,因为go没有双向通道。数据仅在单一方向上流动 - 从作者到读者。
Go中您可以拥有的是频道上的多个读者或作者。这是否有意义取决于上下文。如果您有多个编写器,则需要某种同步来进行关闭操作,例如:一个互斥体。但是,您还需要在每次写入操作之前锁定它,以确保您不在封闭通道上写入。如果你真的不需要通道在接收器端关闭的信息,你也可以简单地省略关闭,因为垃圾收集器也会收集未关闭的通道。