通过协程累加全局变量时,当时获取的数据不正确如test2,需要使用test3进行同步锁的方式进行累加,但是如果开启定时任务进行读取操作,则结果是正确的
func test2() {
for i:=0;i<100;i++ {
go func() {
test++
}()
}
fmt.Print(test)
}
func test3() {
var wg sync.WaitGroup
wg.Add(100) // 因为有两个动作,所以增加2个计数
for i:=0;i<100;i++ {
go func() {
test++
wg.Done()
}()
}
wg.Wait()
fmt.Print(test)
}