<9> go worker线程池
来源:互联网 发布:页面置换算法例题详解 编辑:程序博客网 时间:2024/06/14 10:53
Worker Pools
package mainimport "fmt"import "time"// 使用goroutine 开启大小为3的线程池// 其中1个channel为执行做通信,1个对结果进行保存// 创建的workerfunc worker(id int, jobs <-chan int, results chan<- int) { for j := range jobs { fmt.Println("worker", id, "processing job", j) time.Sleep(time.Second) results <- j * 2 }}func main() { // 创建channel jobs := make(chan int, 100) results := make(chan int, 100) // 3个worker作为一个pool for w := 1; w <= 3; w++ { go worker(w, jobs, results) } // 发送9个jobs,然后关闭 for j := 1; j <= 9; j++ { jobs <- j } close(jobs) // 最后收集结果 for a := 1; a <= 9; a++ { <-results }}
输出:
worker 1 processing job 1
worker 2 processing job 2
worker 3 processing job 3
worker 1 processing job 4
worker 2 processing job 5
worker 3 processing job 6
worker 1 processing job 7
worker 2 processing job 8
worker 3 processing job 9
real 0m3.149s
1 0
- <9> go worker线程池
- Go worker并发模式
- java线程池深入三-Worker
- Go实现线程池
- memcached源码分析之线程池机制-----worker线程
- 使用Swing Worker线程
- 线程master-worker
- 嵌套Worker线程应用
- UI线程与worker线程
- java多线程设计模式Worker Thread(线程池)
- Go 并发 、并行、线程池
- Worker线程使用消息循环
- java线程模型Master-Worker
- h5 真正的线程worker
- 关于GUI线程和worker线程
- 关于GUI线程和worker线程
- Go之简单线程池(引)
- Skynet 源码学习 -- 二级消息队列,Worker 工作线程池, Monitor 。
- 内存泄漏从入门到精通三部曲之排查方法篇
- iBatis简单入门教程
- <UIKit/UIKit.h> 继承关系图
- sip路由原理
- 在Setting中切换中英文后,打开最近应用,里面的提示字符不会切换中英文
- <9> go worker线程池
- html5,html5教程
- linux oracle 乱码
- 接口是否可继承接口(java)
- Windows下MySQL 5.6.27.0.安装及配置
- Oracle改变会话日期格式
- 选择排序,冒泡排序
- 谁说菜鸟不会数据分析(工具篇)---读书笔记
- Notepad++背景颜色设置