沒成功吃上 “霸王餐” 的小白帶著滿腦子的困惑就在這家客棧住下了.
隨後的幾天, 小白日思夜想, 白天盼月亮, 晚上想太陽…百撕不得騎姐.
無意中小白在晃盪時看到這麼一篇文章 Go 中的競態條件探測器.
仔細翻了翻, 小白眼前一亮.
於是趕緊拿來試了試想不明白的那道題.
在執行命令中新增了 -race
引數指令
go run -race main.go
這次輸入如下:
==================
WARNING: DATA RACE
Read at 0x00c00006a068 by goroutine 8:
main.main.func1()
E:/xiaobai/case1/main.go:14 +0x3f
Previous write at 0x00c00006a068 by goroutine 7:
main.main.func1()
E:/xiaobai/case1/main.go:14 +0x55
Goroutine 8 (running) created at:
main.main()
E:/xiaobai/case1/main.go:13 +0xef
Goroutine 7 (finished) created at:
main.main()
E:/xiaobai/case1/main.go:13 +0xef
==================
9992
Found 1 data race(s)
exit status 66
可以看到一個明顯的警告資訊 “WARNING: DATA RACE”.
什麼意思? 怎麼就資料衝突了呢?
- 還有這裡的 0x00c00006a068 是什麼東東?
- 還有這裡的 0x3f, 0x55, 0xef 又是什麼東東?
繼續看輸出資訊…
本作品採用《CC 協議》,轉載必須註明作者和本文連結