Go的sync.WaitGroup(二):WaitGroup让主程序与协程全部都执行 并且全部执行完成
WaitGroup
add与done只是用来统计数量的 done减为0的时候就告诉wait结束
wait只是用来堵塞主函数的 当协程数为0时候结束
有了它我们不用写time.Sleep或者<-channelname了
package mainimport ("fmt""sync"
)var waitgroup sync.WaitGroupfunc Afunction(shownum int) {fmt.Println(shownum)waitgroup.Done() //任务完成,将任务队列中的任务数量-1,其实.Done就是.Add(-1)
}func main() {for i := 0; i < 6; i++ {waitgroup.Add(1) //每创建一个goroutine,就把任务队列中任务的数量+1go Afunction(i)}waitgroup.Wait() //.Wait()这里会发生阻塞,直到队列中所有的任务结束就会解除阻塞
}// 5
// 3
// 2
// 0
// 1
// 4
Go的sync.WaitGroup(二):WaitGroup让主程序与协程全部都执行 并且全部执行完成相关推荐
- python 协程爬虫_Python爬虫进阶教程(二):线程、协程
简介 线程 线程也叫轻量级进程,它是一个基本的CPU执行单元,也是程序执行过程中的最小单元,由线程ID.程序计数器.寄存器集合和堆栈共同组成.线程的引入减小了程序并发执行时的开销,提高了操作系统的并发 ...
- 细说协程零二、为什么要用协程
首先我们来看看目前Android开发中成熟的Retrofit + OkHttp + RxJava网络请求的格式: fun <V> requestData(mObservable: Obse ...
- 协程的挂起、恢复和调度的原理 (二)
目录 一. 协程的挂起.恢复和调度的设计思想 二. 深入解析协程 1. 协程的创建与启动 2. 协程的线程调度 3. 协程的挂起和恢复 4. 不同 resumeWith 的解析 5. 协程整体结构 一 ...
- 【并发编程二十】协程(coroutine)_协程库
[并发编程二十]协程(coroutine) 一.线程的缺点 二.协程 三.优点 四.个人理解 五.协程库 1.window系统 2.unix系统(包括linux的各个版本) 2.1.makeconte ...
- Go 学习笔记(25)— 并发(04)[有缓冲/无缓冲通道、WaitGroup 协程同步、select 多路监听通道、close 关闭通道、channel 传参或作为结构体成员]
1. 无缓冲的通道 无缓冲的通道(unbuffered channel)是指在接收前没有能力保存任何值的通道. 这种类型的通道要求发送 goroutine 和接收 goroutine 同时准备好,才能 ...
- 协程的三种同步方式Channel、Mutex、WaitGroup
1.无缓冲的channel:无缓冲的channel只能发送完之后协程立马阻塞,只有等有协程接受了之后才能继续发送,等待协程接受了,之后立马阻塞,等待channel中有数据才会启动 package ma ...
- 使用waitgroup控制协程退出
1.waitgroup三个接口特别重要 Add Done Wait 如下代码 import ("fmt""sync" )//如何解决主的grouptine在子协 ...
- python中的协程(二)
协程 1.协程: 单线程实现并发 在应用程序里控制多个任务的切换+保存状态 优点: 应用程序级别速度要远远高于操作系统的切换 缺点: 多个任务一旦有一个阻塞没有切,整个线程都阻塞在原地,该线程内的其他 ...
- python2协程_python中的协程(二)
协程 1.协程: 单线程实现并发 在应用程序里控制多个任务的切换+保存状态 优点: 应用程序级别速度要远远高于操作系统的切换 缺点: 多个任务一旦有一个阻塞没有切,整个线程都阻塞在原地,该线程内的其他 ...
最新文章
- LaTeX技巧 twocolumn 双栏
- python如何调用图片-用python简单处理图片(4):图像中的像素访问
- Nginx环境下PHP flush失效的解决方法
- how to improve efficiency of graphic neural network?
- Django框架(1.Django框架的简介)
- 呃... 写满数据的硬盘是否比空硬盘重?
- C#中的多文档的使用
- HTTPS SSL/TLS协议原理
- 通过elasticsearch对日志进行搜索热词统计
- 从今天开始写python编程
- Solidity函数中pure、view、constant的用法
- vlookup和sumif函数使用通配符
- Olly Advanced 1.1 by MaRKuS TH-DJM
- 录屏存储为gif图片
- (附源码)计算机毕业设计SSM装修信息分享管理系统
- daphile的dsd设置_小块头有大能量 篇二:JaguarBoard之Daphile HiFi 畅享
- 你还在观望吗?Creator3D小鲜肉《小鸭快跑》新鲜出炉!
- 诺基亚塞班系统S60第三版FP2实用软件
- 地理信息培训考试(all)20+min90+
- 说说宽带路由器的几个主要参数