package main
import (
"fmt"
"sync"
"sync/atomic"
"time"
)
//使用sync.WaitGroup,启动10个goroutine,按顺序 打印0-9
var counter int32
func main(){
var wg sync.WaitGroup
wg.Add(10)
var i int32
for i = 0;i<10;i++{
go printNum(&wg,i)
time.Sleep(time.Nanosecond)
}
}
func printNum(wg *sync.WaitGroup,i int32){
if i == atomic.LoadInt32(&counter){
fmt.Println(i)
atomic.AddInt32(&counter,1)
wg.Done()
}
}
结果打印出1到9了。
各位大神,我写得是否符合题意?请帮忙点评,谢谢!