关闭方法(至少在Java世界中)是一种好公民的行为,当您完成使用相关资源时,您需要调用它。不知何故,我开始将同样的行为应用于core.async库中的close!函数。据我所知,这些通道与任何IO都没有关联,因此我不确定是否有必要调用close!。在本地范围内,将通道留给垃圾回收而不关闭它们是否可以接受?
在你的程序中,如果关闭它们有意义,那么将它们留给垃圾收集器是可以的。通常,关闭它们是向其他组件发出信号,表示是时候关闭它们自己了。其他通道旨在永久使用,不需要关闭或垃圾回收。在另一些情况下,通道用于向消费者传递一个值,然后生产者和消费者都完成了,通道被垃圾回收。在这些最后的情况下,没有必要关闭它们。