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