【发布时间】:2019-04-29 11:38:03
【问题描述】:
我需要你的帮助。目前我正在尝试创建一个工作池,它从一个通道读取连续作业,然后将结果生成到它正在读取的同一通道,然后工作并将结果生成到同一通道。你得到的想法有点像递归。有没有办法让这成为可能? 我真的很感谢您对设计模式的建议,以使用 go 例程作为工作程序池和通道来读取作业,然后从同一个工作程序池将该工作的结果写入同一个通道以继续工作。谢谢你。
【问题讨论】:
-
您为什么要在同一频道上发布结果/已完成的工作?如果你这样做,其他工作人员可能会接受它(他们会用它做什么?无论如何,完成它的原始工作人员也可以在没有重新发送/接收开销的情况下做到这一点)。如需推荐,请查看:Is this an idiomatic worker thread pool in Go?
标签: algorithm go recursion channel goroutine