在Go语言中,你可以使用`sync.WaitGroup`来实现等待其他协程完成后再操作的功能。`sync.WaitGroup`是一个计数器,可以用来跟踪协程的完成情况。 下面是一个示例代码,演示了如何使用`sync.WaitGroup`等待其他协程完成后再操作: ```go package main import ( "fmt" "sync" "time" ) func main() { var wg sync.WaitGroup // 启动第一个协程 wg.Add(1) go func() { defer wg.Done() // 模拟一些操作 time.Sleep(2 * time.Second) fmt.Println("第一个协程完成") }() // 启动第二个协程 wg.Add(1) go func() { defer wg.Done() // 模拟一些操作 time.Sleep(3 * time.Second) fmt.Println("第二个协程完成") }() // 等待所有协程完成 wg.Wait() // 所有协程完成后执行的操作 fmt.Println("所有协程已完成") } ``` 在上面的代码中,我们首先创建了一个`sync.WaitGroup`实例,并使用`Add`方法增加了两个协程。每个协程执行完成后,会调用`Done`方法来减少计数器。然后,我们使用`Wait`方法来阻塞主线程,直到计数器归零,即所有协程都完成。我们执行所有协程完成后需要执行的操作。 运行以上代码,你会看到类似以下的输出: ```css 第一个协程完成 第二个协程完成 所有协程已完成 ``` 这样,主协程会等待其余协程完成后才继续执行后续操作。 [2023-11-09 18:15:29 | AI写代码神器 | 399点数解答]