霸王餐 (中)
没成功吃上 “霸王餐” 的小白带着满脑子的困惑就在这家客栈住下了.
随后的几天, 小白日思夜想, 白天盼月亮, 晚上想太阳…百撕不得骑姐.
无意中小白在晃荡时看到这么一篇文章 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 又是什么东东?
继续看输出信息…