RSS
菜单

Go 数据竞争是什么?-race 检测与四种避免方案

数据竞争:多个 goroutine 同时访问同一内存,至少一个是写操作且无同步机制,结果不确定、可能崩溃(Go 1.6+ 会报 fatal error)。检测:go test -race / go run -race 运行时报告竞争位置。避免:① Mutex/RWMutex 保护共享数据;② channel 传值替代共享;③ atomic 包原子操作(计数器、标志位);④ 每 goroutine 用局部变量不共享;⑤ 只读数据安全共享。原则:能不共享就不共享,必须共享就同步。

下载推广海报

圈内讨论推广海报

《Go 数据竞争是什么?-race 检测与四种避免方案》完整推广海报
一起交流

全部回复 0

分享经验,让问题更进一步

讨论,从你的观点开始

还没有回复,欢迎补充经验或分享不同的思路。