格式不会搞截图了 原文链接http://marcio.io/2015/07/handling-1-million-requests-per-minute-with-golang/
![QQ截图20190815114842.png](https://static.studygolang.com/190815/af58ac04e5272a756607c397d8a5712b.png)
```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)
}
}
}
```
#5
更多评论
你的job.do()是代表具体的逻辑部分吗?
然后逻辑处理完了,<-Workers,才从这个chan里拿一个数据?
不应该是启动之前做这事吗?然后完成操作后,放回去一个吗?
```go
func Work(){
Workers:=make(chan bool,MaxWorkers)
for i:=0;i < MaxWorkers; i++{
Workers <-true
}
for {
select {
case job := &lt;-JobQueue:
&lt;-Workers
go func(job Job){
job.do()
Workers &lt;-true
}(job)
}
}
}
```
#1
你的job.do()是代表具体的逻辑部分吗?
然后逻辑处理完了,<-Workers,才从这个chan里拿一个数据?
不应该是启动之前做这事吗?然后完成操作后,放回去一个吗?
```go
func Work(){
Workers:=make(chan bool,MaxWorkers)
for i:=0;i < MaxWorkers; i++{
Workers <-true
}
for {
select {
case job := &lt;-JobQueue:
&lt;-Workers
go func(job Job){
job.do()
Workers &lt;-true
}(job)
}
}
}
```
#2