博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
golang sync WaitGroup
阅读量:6988 次
发布时间:2019-06-27

本文共 518 字,大约阅读时间需要 1 分钟。

hot3.png

简介

它能够一直等到所有的goroutine执行完成,并且阻塞主线程的执行,直到所有的goroutine执行完成。

WaitGroup总共有三个方法:Add(delta int),Done(),Wait()。简单的说一下这三个方法的作用。

Add:添加或者减少等待goroutine的数量

Done:相当于Add(-1)

Wait:执行阻塞,直到所有的WaitGroup数量变成0

示例

package mainimport (	"fmt"	"sync"	"time")func main() {	var wg sync.WaitGroup	for i := 0; i < 5; i = i + 1 {		wg.Add(1)		go func(n int) {			// defer wg.Done()			defer wg.Add(-1)			EchoNumber(n)		}(i)	}	wg.Wait()}func EchoNumber(i int) {	time.Sleep(3e9)	fmt.Println(i)}

输出

01234

转载于:https://my.oschina.net/u/572632/blog/884156

你可能感兴趣的文章
我的友情链接
查看>>
字节流
查看>>
大型网站架构演变和知识体系
查看>>
抛砖引玉:Session和Cookie在WEB开发中的最佳实践
查看>>
一次小***处理
查看>>
哈希(Hash)与加密(Encrypt)的基本原理、区别及工程应用
查看>>
电子商务系统的设计与实现(八):前端商城系统功能细化
查看>>
深入理解 Kubernetes CPU Mangager
查看>>
java web中过滤敏感词汇的简单方法
查看>>
Nginx配置文件nginx.conf中文详解
查看>>
linux anaconda kickstart基础
查看>>
DITA vs DocBook
查看>>
调整Outlook 2010的pst文件大小
查看>>
python笔记二 基础
查看>>
nohup /dev/null 2>&1 含义详解
查看>>
Micropython教程之TPYBoard DIY超声波测距仪实例演示
查看>>
我的友情链接
查看>>
Android切近实战(六)
查看>>
mysqlbinlog 使用
查看>>
RHCS中GFS2共享存储扩容
查看>>