请教一个高并发协程池的问题

gouyingqi · · 851 次点击
buguang01
https://github.com/buguang01
.....
#6
更多评论
buguang01
https://github.com/buguang01
你的job.do()是代表具体的逻辑部分吗? 然后逻辑处理完了,<-Workers,才从这个chan里拿一个数据? 不应该是启动之前做这事吗?然后完成操作后,放回去一个吗? ```go func Work(){ Workers:=make(chan bool,MaxWorkers) for i:=0;i < MaxWorkers; i++{ Workers <-true } for { select { case job := <-JobQueue: <-Workers go func(job Job){ job.do() Workers <-true }(job) } } } ```
#1
buguang01
https://github.com/buguang01
你的job.do()是代表具体的逻辑部分吗? 然后逻辑处理完了,<-Workers,才从这个chan里拿一个数据? 不应该是启动之前做这事吗?然后完成操作后,放回去一个吗? ```go func Work(){ Workers:=make(chan bool,MaxWorkers) for i:=0;i < MaxWorkers; i++{ Workers <-true } for { select { case job := <-JobQueue: <-Workers go func(job Job){ job.do() Workers <-true }(job) } } } ```
#2