1 回答

TA貢獻1866條經驗 獲得超5個贊
你猜怎么了?我運行了您的應用程序,得到了不同的輸出:有時,49,有時,有時(有時)。485051
如果您在啟用競爭檢測器 ( go run -race play.go) 的情況下運行您的應用程序,它會告訴您存在數據競爭:
==================
WARNING: DATA RACE
Read at 0x00c00009a010 by goroutine 7:
main.incr()
/home/icza/gows/src/play/play.go:9 +0x3a
Previous write at 0x00c00009a010 by goroutine 6:
main.incr()
/home/icza/gows/src/play/play.go:9 +0x50
Goroutine 7 (running) created at:
main.main()
/home/icza/gows/src/play/play.go:17 +0x83
Goroutine 6 (finished) created at:
main.main()
/home/icza/gows/src/play/play.go:17 +0x83
==================
當你有數據競爭時,你的應用程序的行為是未定義的?!翱此朴袝r工作”也符合“未定義”行為,但未定義也意味著它也可以做任何其他事情。
- 1 回答
- 0 關注
- 121 瀏覽
添加回答
舉報