[Go] Go的WaitGroup计数信号量
2023-02-18 15:41:55 时间
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结束") }
相关文章
- John the Ripper破解Linux密码
- 「uTools」生成P站Logo插件
- 【实战】自定义 Github Action 库
- macOS 的 PHP 集成开发环境
- Github 无法访问
- 开源的Linux操作系统_Centos7下载
- linux awk 函数定义变量赋值,Linux中的Awk定义、用法详解
- fscanf读取一行字符串-C++的学习之路---12
- git强制拉取远程项目覆盖本地项目
- c++的链表-C++链表
- Linux UnblockNeteaseMusic 一键部署脚本
- c++的链表-链表入门(C++)
- c++的链表-C++实现简单链表
- Linux系统下安装JDK8和Maven3.8.5
- 使用Typora+PicGo实现图片自动上传到Gitee图床
- PWN头秃之旅 - 5.经典栈溢出实验(linux_x86)
- PWN头秃之旅 - 1.Linux的保护机制
- 靶机练习-VulnHub-Escalate_Linux: 1
- 中文编程是什么语言?-php是一种什么编程语言
- git命令学习