【发布时间】:2016-03-31 13:09:12
【问题描述】:
问题在标题中。假设我有几个 goroutine(超过 100 个),所有这些最终都将数据发送给一个 chan(命名为 mychan := make(chan int))另一个 goroutine 在一个无休止的 for 循环中执行 <- mychan 是否可以,否则 chan 可能会丢失一些数据?我应该改用缓冲的chan吗?或者也许我要创建一个 chan 和一个“恶魔” goroutine 来为每个工作 goroutine 提取消息?
【问题讨论】:
-
当有活动的 goroutines 仍在处理数据时,您的程序是否正在退出?这可能会使您发送的消息看起来丢失了。
标签: go concurrency goroutine