func main() {
var number int = 0
go func() {
for {
number++
//time.Sleep(time.Nanosecond)
}
}()
for {
fmt.Println(number)
time.Sleep(time.Second)
}
}
数字的打印始终为0,但是在for循环中添加time.Sleep(time.Nanosecond)语句后,该值的打印将变为正常。为什么?
您有一场数据竞赛。阅读Go内存模型: