1
2
你已经注意到了
为了解决这个问题,你需要一个新的goroutine。
还有一个问题:你的
目前,每次
要解决这部分问题,您应该使用
|
2
1
关于改进代码的初步意见
蒂姆的评论似乎没有触及要点。你在节目结束时关闭频道应该没关系
这可以被认为是一个问题,当没有消息时,您将通过
您还可以添加一个“停止”频道的情况,该频道会中断
最后,您可能还应该重命名变量
变成
…这对你的眼睛/大脑来说更容易扫描。 为什么你的代码被破坏了
你有一个频道死锁。你没有注意到因为
这是因为
但在正常信道上,发送和接收都是阻塞操作。发送/接收的goroutine在其伙伴出现之前不会取得进展。
可以使用缓冲通道来避免这种情况,但不可能事先知道目录中会找到多少目录,因此缓冲区可能太小。我建议生成一个goroutine,这样它可以在不影响整体
|
Wooram Jung · 如何在Android O中动态更改通知声音 6 年前 |
Sridhar · 如何实现对无缓冲通道的非阻塞写入? 6 年前 |
Lordking · 果心异步循环被阻止,等待从通道读取 6 年前 |
N. Kudryavtsev · 当Kotlin通道满时执行一段代码 6 年前 |
kmad1729 · goroutine阻塞和非阻塞使用 6 年前 |
AGogel · 三个多贴图通道模型和纹理。js公司 7 年前 |
Ayub Malik · 对于带缓冲通道的环路 7 年前 |
Terry Pang · 当涉及多个通道时,select如何工作? 7 年前 |