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言语教程,快去关注ki4网的go视频教程吧!
以上就是[Go进修] 并发掌握之WaitGroup计数信号量的细致内容,更多请关注ki4网别的相干文章!