Go Worker Pools1 Apr 2025 | 2 分钟阅读 工作池是一种设计模式,其中固定数量的 m 个工作者 (Go 协程) 在工作队列 (Go 通道) 中处理 n 个任务。 工作保存在队列中,直到一个工作者完成其当前任务并拉取一个新的任务。 让我们通过一个例子来看看它 输出 worker 2 processing job 1 worker 1 processing job 2 worker 2 processing job 3 worker 1 processing job 4 worker 1 processing job 5 worker 2 processing job 6 worker 1 processing job 7 worker 2 processing job 8 在这个例子中,启动了 2 个工作者,并将 9 个工作项放入作业通道中。 工作者有一个带有 time.Sleep 的工作循环,因此每个工作者最终都会处理 2 个作业。在所有工作都放入通道后,使用 close 关闭通道,这会向所有 2 个工作者发出信号,他们可以通过从循环中退出循环来结束他们的工作循环。 下一个主题Golang-time |
我们请求您订阅我们的新闻通讯以获取最新更新。