如何在黄HandleFunc中使用多线程编程?
package main
import (
"fmt"
"sync"
)
func main() {
var wg sync.WaitGroup
wg.Add(2)
go func() {
fmt.Println("Hello from thread 1")
wg.Done()
}()
go func() {
fmt.Println("Hello from thread 2")
wg.Done()
}()
wg.Wait()
}
运行结果:
Hello from thread 1
Hello from thread 2
解释:
-
sync.WaitGroup
是一个用于管理并行任务的结构。 -
wg.Add(2)
创建了 2 个工作线程。 -
go func()
函数使用wg.Add()
方法添加它们到等待队列中。 - 每个线程调用
wg.Done()
方法,表示它已经完成其任务并退出等待队列。 -
wg.Wait()
方法等待所有线程完成,直到所有任务都完成。
注意:
- 在使用多线程编程之前,请确保您了解并发编程的基本概念。
- 使用
sync.WaitGroup
时,请确保您的代码是安全的。 - 确保您的应用程序有足够的资源来处理并发请求。