2023-02-15
Add(delta int) :添加任务数
Wait():阻塞等待所有任务的完成
Done():完成任务
import (
"fmt"
"sync"
"time"
)
func worker(wg *sync.WaitGroup) {
doSomething()
wg.Done() // 2.1、完成任务
}
func main() {
var wg sync.WaitGroup
wg.Add(5) // 1、添加 5 个任务
for i := 1; i <= 5; i++ {
go worker(&wg) // 2、每个任务并发执行
}
wg.Wait() // 3、阻塞等待所有任务完成
}
该代码示例展示了如何在Go语言中使用sync.WaitGroup来管理并发任务。程序首先添加5个任务,然后启动goroutines并发执行这些任务,每个任务执行完后调用Done()方法,主线程通过调用Wait()阻塞,直到所有任务完成。
1060

被折叠的 条评论
为什么被折叠?



