Go语言sync库和WaitGroup的使用
// code_041_sync_WaitGroup project main.go
package main
import (
"fmt"
"sync"
)
func main() {
fmt.Println("Hello World!")
var wg sync.WaitGroup
wg.Add(2)
go func() {
defer wg.Done()
for i := 0; i < 10000; i++ {
fmt.Printf("Hello,Go.This is %d\n", i)
}
}()
go func() {
defer wg.Done()
for i := 0; i < 10000; i++ {
fmt.Printf("Hello, world.This is %d\n", i)
}
}()
wg.Wait()
}
sync.WaitGroup是一个计数的信号量,使main函数所在主线程等待两个goroutine执行完成后再结束,否则两个goroutine还在运行时,主线程已经结束。
sync.WaitGroup使用非常简单,使用Add方法设设置计数器为2,每一个goroutine的函数执行完后,调用Done方法减1。Wait方法表示如果计数器大于0,就会阻塞,main函数会一直等待2个goroutine完成再结束。
我们提供的服务有:网站设计制作、成都做网站、微信公众号开发、网站优化、网站认证、龙潭ssl等。为近千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的龙潭网站制作公司
网站名称:Go语言sync库和WaitGroup的使用
文章转载:http://scjbc.cn/article/gpddje.html