当前位置: 首页 > news >正文

设计广告网站自助单页网站

设计广告网站,自助单页网站,温州有没有做鞋的网站,网站出错咨询电话错误的写法&#xff1a; 这里的<-ch 是为了从channel 中读取 数据&#xff0c;为了不使channel通道被写满&#xff0c;阻塞 go 协程数的创建。但是请注意&#xff0c;go workForDraw(v, &wg) 是不阻塞后续的<-ch 执行的&#xff0c;所以就一直go workForDraw(v, &…

错误的写法:
这里的<-ch 是为了从channel 中读取 数据,为了不使channel通道被写满,阻塞 go 协程数的创建。但是请注意,go workForDraw(v, &wg) 是不阻塞后续的<-ch 执行的,所以就一直go workForDraw(v, &wg) 拉起新的协程。这么是达不到控制协程并发数10 的目的
在这里插入图片描述

正确的写法:
直接将<-ch 写入workForDraw 方法里面的最后,这样只有 该 go 协程的任务 workForDraw 完成之后才会执行 <-ch ,使channel管道中的缓冲释放一个。
这样就把 <-ch 和 go 协程持有的任务 workForDraw 强制绑定,只有完成任务才会 <-ch ,如果不完成,只要channel通道的缓冲不满10 就可以继续创建新的go 协程持有workForDraw。直到缓冲满到10 为止

func ListenRedisQue() {ch := make(chan int, 10)var wg sync.WaitGroupfor {keyData, err := config.GetRedisClient().Keys(global.RedisQueueKey + "*").Result()fmt.Println("ListenRedisQue start for", keyData)if err != nil {fmt.Println("redis queue empty!!")return}for _, v := range keyData {ch <- 1wg.Add(1)go workForDraw(v, &wg, ch)}wg.Wait()}
}func workForDraw(queueKey string, wg *sync.WaitGroup, ch chan int) {defer wg.Done()<-ch 
}

在这里插入图片描述
另外切记 在for 循环中,一定不能初始化 db,或者其他消耗资源,可循环使用的动作,要将初始化提到for之外,将资源以变量或者指针形式传入 for 逻辑内部使用

http://www.yayakq.cn/news/792107/

相关文章:

  • jsp 交互网站开发技术 西安交通大学出版社 2005.10服务器网站访问慢
  • 两个域名同一个网站做优化网站主体负责人不是法人
  • 成都网站优化方式中国电子商务平台
  • godaddy 搭建网站数据分析师报名官网
  • 网站建设属开票核定税种cc在线代理
  • 电子商务的网站建设要求步骤网页制作软件山水
  • 中企动力网站优化常州网站建设czyzj
  • 做的网站没流量吗阳新县建设局网站
  • 网站开发技术技巧网站模板切换
  • iis7 无法访问此网站做淘宝客网站需要做后台吗
  • 太原网站建设公司5858重庆交通建设集团网站
  • 网站建设使用的什么做网站被网警找
  • 安福县住房和城乡建设局网站重庆交通建设集团网站
  • 公司弄个网站多少钱wordpress 删除标签页
  • 深圳专业网站wordpress图片自动加广告
  • 行业关键词查询seo sem培训
  • 江阴营销网站建设设计事务所
  • 江门网站推广wordpress 虚拟注册插件
  • 提供网站建设工具的品牌互联网网站建设门户网
  • 铜川建设网站网站快速过备案
  • 网站的功能和特色国内最好的域名注册商
  • cms免费建站系统平凉有做企业网站的吗
  • 电子商务网站建设与管理是什么整站优化seo平台
  • 物流网站建设的小结怎么做网页反向链接
  • 浙江省城乡住房建设厅网站如何做企业组织架构图
  • 北京城乡住房建设官方网站网络管理中心
  • 网站建设灵寿前端网站开发框架
  • 做音乐网站代码东莞市民服务中心调整入场核验
  • 淮安谁家做网站淘宝网站都是怎么做的吗
  • 男女直接做网站wordpress 页面文章