竞争条件影响

时间:2013-03-19 13:29:02

标签: c++ linux multithreading race-condition

我知道竞争条件存在风险,并且写入或读取的值可能已损坏。我处于一种情况,我在布尔和整数以及几个类实例上进行比赛。

除了数据无效之外,这是否会导致程序崩溃或对我的程序产生任何其他恶劣影响?我最担心的是什么?

我的程序有2个版本是调试版,另一个版本有很多优化选项。当它投入生产时,我担心这最后一个。

2 个答案:

答案 0 :(得分:3)

data not being valid可能会导致任何(即您调用未定义的行为)。因此,考虑到这一点,您的应用程序可能会崩溃,泄漏内存,格式化硬盘驱动器以及其他任何内容。

答案 1 :(得分:0)

  

这会导致程序崩溃吗

取决于正在竞争的资源,但是是的。如果一个线程抓取资源而另一个线程需要它继续进行,那么你可能会得到未定义的行为甚至程序崩溃。

  

除了数据无效之外,我的程序还有其他任何令人讨厌的影响吗?

除了无效数据(因此实际上是无用的程序)之外,您还可能容易出现死锁。

竞争条件wikipedia article是查找问题答案的好地方。