Go worker并发模式
来源:互联网 发布:自选股软件下载 编辑:程序博客网 时间:2024/06/05 20:17
Go语言借助于goroutine和channel可以非常方便的处理并发任务。
package mainimport "fmt"import "time"// go goroutinefunc worker(id int, jobs <-chan int, results chan<- int) { for j := range jobs { fmt.Println("worker", id, "started job", j) time.Sleep(time.Second) fmt.Println("worker", id, "finished job", j) results <- j }}func main() { // 定义两个channel,相当于队列 // jobs接收请求 // results输出响应结果 jobs := make(chan int, 100) results := make(chan int, 100) // 创建workpool,大小为3,可以理解成线程池 for w := 1; w <= 3; w++ { go worker(w, jobs, results) } // 发送任务 for j := 1; j <= 5; j++ { jobs <- j } close(jobs) // 得到结果 for a := 1; a <= 5; a++ { <-results }}
0 0
- Go worker并发模式
- 并发设计模式之Master-Worker模式
- 并发模式(二)Master-Worker模式
- Java 并发模式之Master-Worker
- 并发编程之Master-Worker模式
- 7. 并发模式(Go Tutorial)
- go语言并发编程-----Goroutines 并发模式
- 并发模型(二)——Master-Worker模式
- 并发模型(二)——Master-Worker模式
- 并发模型(二)——Master-Worker模式
- 并发模型(二)——Master-Worker模式
- 并发模型(二)——Master-Worker模式
- 并发模型(二)——Master-Worker模式
- 并发编程复习(十):master和worker模式
- 并发模型(二)——Master-Worker模式
- 并发编程实现模型之(二)Master-Worker模式
- <9> go worker线程池
- Go 并发
- 注册机是如何获取序列号的?
- 内存管理之bootmem管理之释放内存
- Android Glide学习笔记
- 第几天?
- [BZOJ4206]最大团(计算几何+dp)
- Go worker并发模式
- OpenCV--霍夫线变换&霍夫圆变换
- inline,inline-block,block的区别
- pycharm
- PHP中include()与require()的区别
- Using astyle to format code
- PAT 基于词频的文件相似度 (set) -- 解题报告
- C语言文件处理
- swing 设置控件居中与设置文字格式