我有编写golang
代码的包。
我担心程序运行不正常,因为它会不时输出不同的结果。可能是race condtions
引起的。所以我多次跑:
go run -race myprogram
但我没有得到任何警告或错误。
可能错误在我导入的另一个包中。据我了解,-race
标志并未检测到它们。如果是这样,我该怎么做(检测不在我的代码中但在我导入的包中发生的竞争条件,我在我的代码中使用)?
答案 0 :(得分:3)
竞争条件检测是假阴性而非假阳性。这意味着它可以在刚刚发生的任何时候检测到竞争 - 当程序试图同时读取或写入共享值时。底线是-race标志不适用于100%的情况。