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

weixin_38064773 2019-09-20 10:25:34
格式不会搞截图了 原文链接http://marcio.io/2015/07/handling-1-million-requests-per-minute-with-golang/

...全文
41 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38114442 2019-09-20
  • 打赏
  • 举报
回复
啊啊啊 工工工工 饭
weixin_38066085 2019-09-20
  • 打赏
  • 举报
回复
你的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) } } } ```
weixin_38073691 2019-09-20
  • 打赏
  • 举报
回复
你的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) } } } ```
weixin_38087753 2019-09-20
  • 打赏
  • 举报
回复
```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) } } } ```

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧