goroutine的垃圾是否与渠道一起收集?

goroutine的垃圾是否与渠道一起收集?,第1张

goroutine的垃圾是否与渠道一起收集?

如果通道未缓冲,则匿名函数之一将不会返回。该程序泄漏了goroutine和通道。

如果通道的缓冲区大小大于或等于1,则两个匿名函数都将返回。goroutines和channel使用的资源将被回收。

缓冲区大小为1足以防止泄漏。该函数

waitForOneOfTwoProcesses
接收发送到的值之一
c
。发送到的第二个值
c
在通道中缓冲(由GC收集)。

确保goroutines返回的另一种方法是使用非阻塞发送。将这些

c <- true
行替换为:

 select { case c <- true: default: }


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5126194.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存