Go语言中文网 为您找到相关结果 2

golang sync.WaitGroup

//阻塞,直到WaitGroup中的所以过程完成。 import ( "fmt" "sync" ) func wgProcess(wg *sync.WaitGroup, id int) { fmt.Printf("process:%d is going!\n", id) //if id == 2 { // return //} wg.Done() } func main() { //var wg sync.WaitGroup wg := new(sync.WaitGroup) for i := 0; i < 3; i++ { wg.Add(1) go wgProcess(wg, i) } wg.Wait() fmt.Println("after wait group") ...阅读全文

博文 2015-04-09 03:00:01 rojas

golang sync WaitGroup

刚才看golang的sync的包,看见一个很有用的功能。就是WaitGroup。 先说说WaitGroup的用途:它能够一直等到所有的goroutine执行完成,并且阻塞主线程的执行,直到所有的goroutine执行完成。 WaitGroup总共有三个方法:Add(delta int),Done(),Wait()。简单的说一下这三个方法的作用。 Add:添加或者减少等待goroutine的数量 Done:相当于Add(-1) Wait:执行阻塞,直到所有的WaitGroup数量变成0 package main import ( "fmt" "sync" "time" ) func main() { var wg sync.WaitGroup for i := 0; i < 5; i = i ...阅读全文

博文 2019-01-09 14:34:47 lu566