使用channel.close()关闭kotlinx.coroutines通道有什么作用?不手动关闭通道会有什么负面影响?如果我不手动关闭频道,会不会有一些不必要的处理?是否会有对某个通道的引用,从而阻止它被GCd?或者关闭功能仅仅作为通知潜在用户该频道不能再被使用的一种方式而存在。
(问题转载自Kotlin论坛https://discuss.kotlinlang.org/t/closing-coroutine-channels/2549)
发布于 2017-05-10 17:56:09
从概念上讲,关闭通道是通过在此通道上发送一个特殊的“关闭令牌”来实现的。当您有一个有限的元素序列要由使用者处理时,您关闭了一个通道,并且您必须向使用者发出此序列已结束的信号。否则,您不必关闭通道。
通道不会绑定到任何本机资源,也不需要关闭它们来释放内存。只需删除对通道的所有引用即可。GC会来清理的。
https://stackoverflow.com/questions/43889066
复制相似问题