Answers:
可以永远保持Go频道永远不关闭。当不再使用该通道时,将对其进行垃圾回收。
请注意,只有当接收器正在寻找关闭通道时,才需要关闭通道。关闭通道是通道上的控制信号,指示没有更多数据跟随。
gc
的作者和gccgo
say channel close
的作者不是必需的close
。那是权威建议。
“ 使用Go通道的一个普遍原则是,不要从接收方关闭通道,如果通道有多个并发发送者,则不要关闭通道。 ”
正如上面的答案中明确提到的,每个通道一旦标记为要清理就将最终被GC,因此可以不关闭通道而已,唯一的区别是该通道将gc
在几个周期后可用没有明确关闭。
Go是垃圾收集的,因此您实际上不必“释放”任何东西。
可以关闭通道,但它通常用作-close(channel)-告诉goroutine(或主程序)该通道上将不会发送任何其他消息。