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

青州网站优化搜索引擎排名中国

青州网站优化,搜索引擎排名中国,wordpress数据库登陆,深圳餐饮公司网站制作WaitGroup 背景 如果将一个任务分为任意个小任务,并且不关心小任务的执行顺序,并且希望等待全部的小任务执行完成后再去操作后面的逻辑,那我推荐你用sync.WaitGRoup 使用方法 比如,有一个任务需要执行 3 个子任务,…

WaitGroup

背景

如果将一个任务分为任意个小任务,并且不关心小任务的执行顺序,并且希望等待全部的小任务执行完成后再去操作后面的逻辑,那我推荐你用sync.WaitGRoup

使用方法

比如,有一个任务需要执行 3 个子任务,那么可以这样写:

package mainimport ("fmt""sync"
)func main() {// 定义信号量var wg sync.WaitGroup// wg 添加任务数量wg.Add(3)// 创建三个携程处理wggo func(i int, wg *sync.WaitGroup) {// 提前定义结束defer wg.Done()fmt.Printf("执行任务%d\n", i)}(1, &wg)go func(i int, wg *sync.WaitGroup) {// 提前定义结束defer wg.Done()fmt.Printf("执行任务 %d\n", i)}(2, &wg)go func(i int, wg *sync.WaitGroup) {// 提前定义结束defer wg.Done()fmt.Printf("执行任务 %d\n", i)}(3, &wg)// 等待所有携程执行完毕fmt.Println("等待所有任务执行中....")wg.Wait()fmt.Println("所有任务执行完了....")
}

踩坑点避免

1.调用时应该调用&wg而不是wg(调用引用)

// 正确
go handlerTask1(&wg)// 错误
go handlerTask1(wg)

2.确保wg.Add()应该在wg.Wait()之前执行

 // 错误
var wg sync.WaitGroupgo handlerTask1(&wg)wg.Wait()...func handlerTask1(wg *sync.WaitGroup) {wg.Add(1)defer wg.Done()fmt.Println("执行任务 1")
}

3.注意 wg.Add() 和 wg.Done() 的计数器保持一致

小结

sync.WaitGroup 使用起来比较简单,一定要注意不要踩到坑里。

其实 sync.WaitGroup 使用场景比较局限,仅适用于等待全部子任务执行完毕后,再进行下一步处理,如果需求是当第一个子任务执行失败时,通知其他子任务停止运行,这时 sync.WaitGroup 是无法满足的,需要使用到通知机制(channel)。

Channel

由于时间原因,在这里只简单讲一下Channel的作用吧

1.作为锁保证多协程执行时线程安全

2.控制并发数量

https://juejin.cn/post/7175028144812851237

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

相关文章:

  • 做淘客网站注意事项网页版梦幻西游虎灯令
  • 车商城网站建设免费咨询法律律师电话号码
  • 手机网站 seo网站建设口号
  • 想做个小网站怎么做江苏省造价信息工程网
  • 萝卜建站app广西做网站公司有哪些
  • 做网站一定要认证吗360怎么做网站
  • 会计信息系统网站建设流程图品牌建设的预期成果
  • 德州seo整站优化中国住房和城乡建设部网站官网
  • 软装设计公司网站cenos7 安装wordpress
  • 代做吧机械网站线下引流推广方法
  • 多说评论插件对网站优化行业关键词词库
  • 新沂徐州网站开发wordpress update_post_meta
  • 网站建设专业培训完整html网页代码案例
  • 泉州网站建站模板怎么做免费网站 视频
  • 网站建设公司包括哪些方面网站建设1選宙斯站长
  • 贵阳两学一做网站公司网页设计内容方案
  • 石家庄有那些网站开发公司汕头app开发
  • 招商网站建设网网站建设能干什么
  • 做机网站网站建设攸县
  • 做海报的网站什么编辑中国菲律宾时差
  • 平果县免费网站哪家好WordPress标签转拼音代码
  • 个人网站模板flash如何免费申请邮箱域名
  • 成都私人网站建设沈阳网站建设建设公司哪家好
  • 下城区做网站专业群建设方案
  • 潍坊地区制作网站怀化租房网站
  • 软件开发模型有哪些各有什么特点哈尔滨seo优化教程
  • 合肥营销网站建设联系方式重庆网站建设在哪里
  • 番号网站怎么做vi设计是设计什么
  • 专业做ea的网站wordpress课程
  • 网站后台打打开空白建筑学网站推荐