[Go学习] 并发控制之WaitGroup计数信号量
WaitGroup是一个计数信号量,可以用来记录并维护运行的goroutine,如果WaitGroup的值大于0,Wait方法就会阻塞
调用Done方法来减少WaitGroup的值,并最终释放main函数
package main import( "fmt" "runtime" "sync" ) func main(){ //只分配一个逻辑处理器给调度器使用 runtime.GOMAXPROCS(1) //wg用来使main goroutine等待子goroutine结束 var wg sync.WaitGroup //等待两个子goroutine结束 wg.Add(2) fmt.Println("开启goroutine") go func(){ defer wg.Done() //循环显示三遍字母表 for count:=0;count<3;count { //循环显示字母表 for char:='a';char<'a' 26;char { fmt.Printf("%c ",char) } } }() go func(){ defer wg.Done() //循环显示三遍字母表 for count:=0;count<3;count { //循环显示字母表 for char:='A';char<'A' 26;char { fmt.Printf("%c ",char) } } }() //main goroutine等待子goroutine结束 wg.Wait() fmt.Println("\ngoroutine结束") }
想了解更多go语言教程,快去关注jquery中文网的go视频教程吧!
以上就是[Go学习] 并发控制之WaitGroup计数信号量的详细内容,更多请关注jQuery中文网其它相关文章!
您可能感兴趣的文章:
[Go学习] 并发控制之WaitGroup计数信号量
golang WaitGroup源码解析
Go WaitGroup实现原理
字节跳动的 Go 语言面试会问哪些问题?
golang语言异步通信之WaitGroup
golang goroutine 通知_深入golang之---goroutine并发控制与通信
Go语言发展历史、核心、特性及学习路线
Go语言学习3----Go语言特色
Go 语言学习第一章节
从零开始学习GO语言-搭建Go语言开发环境-快速开发入门第一个小程序