💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
### sync.WaitGroup 可以看到在分配一个逻辑处理器的情况下,两个goroutine的任务交替进行,实现了并发的效果. ~~~ var wg sync.WaitGroup func main() { runtime.GOMAXPROCS(1) //设置1个逻辑处理器 //runtime.GOMAXPROCS(runtime.NumCPU()) //可以获取物理核心的数量,并修改runtime. 可以使goroutine进行并行处理 wg.Add(2) //添加两个任务 go printPrime("A") //启动任务A go printPrime("B") //启动任务B fmt.Println("等待") wg.Wait() //阻塞等待任务完成 fmt.Printf("完成") } func printPrime(prefix string) { defer wg.Done() //任务完成将任务数量-1 , 和Add(-1) 的效果是一样的 next: for outer := 2; outer < 10000; outer++ { for inner := 2; inner < outer; inner++ { if outer%inner == 0 { continue next } } fmt.Printf("%s;%d\n", prefix, outer) } fmt.Println("完成", prefix) } ~~~