Go学习并发控制之WaitGroup计数信号量的案例-创新互联

这篇文章主要介绍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学习并发控制之WaitGroup计数信号量的案例的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


网站题目:Go学习并发控制之WaitGroup计数信号量的案例-创新互联
网站链接:http://bzwzjz.com/article/dehsgg.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站制作 重庆手机网站建设 企业网站建设 定制网站建设 四川成都网站制作 成都网站建设公司 营销型网站建设 网站设计制作报价 成都网站制作 手机网站制作 网站设计制作 成都网站建设 网站建设开发 成都网站设计 重庆网站建设 企业手机网站建设 网站制作 网站制作公司 高端定制网站设计 响应式网站设计 成都网站建设 成都网站建设