发布时间:2024-11-21 19:56:08
Golang提供了一个内置的包叫做sync,其中的WaitGroup类型可以很方便地控制携程的数量。
var wg sync.WaitGroup
接下来,我们需要定义一个函数,这个函数将会作为携程的执行体。在函数内部,我们需要调用Done()方法来标志携程的结束。func executeTask() {
defer wg.Done()
// 执行任务的代码
}
在主函数或其他适当的地方,我们需要使用Add()方法指定携程的数量。在这之后,我们需要使用Wait()方法来等待所有的携程执行完毕。for i := 0; i < numTasks; i++ {
wg.Add(1)
go executeTask()
}
wg.Wait()
package main
import (
"fmt"
"sync"
)
var wg sync.WaitGroup
const numTasks = 5 // 指定携程数量
func executeTask() {
defer wg.Done()
// 执行任务的代码
// 在这里可以编写具体的任务逻辑
}
func main() {
for i := 0; i < numTasks; i++ {
wg.Add(1)
go executeTask()
}
wg.Wait()
}
通过使用上述代码,我们可以轻松地创建有限携程,并且在所有携程执行完毕后等待它们的结束。