package main
import(
"fmt"
"sync"
// "test"
)
// 1.用waitgroup等待两个goroutine的完成
// 2.用channel来实现同步
func main(){
var wg sync.WaitGroup
wg.Add(2)
ch:=make(chan struct{})
go func(){
defer wg.Done()
for i:=1;i<101;i++{
ch<-struct{}{}
if i%2==1{
fmt.Println("线程1打印:",i)
}
}
}()
go func(){
defer wg.Done()
for i:=1;i<101;i++{
<-ch
if i%2==0{
fmt.Println("线程2打印:",i)
}
}
}()
wg.Wait()
// testFunc()
}
用Go实现两个线程交替打印奇数和偶数
最新推荐文章于 2024-11-01 15:45:46 发布
本文通过示例展示了如何在Go语言中使用WaitGroup和channel进行并发控制,两个goroutine交替打印数字,体现了它们在同步任务中的应用。
摘要由CSDN通过智能技术生成