C++ 竞争条件效应

C++ 竞争条件效应,c++,linux,multithreading,race-condition,C++,Linux,Multithreading,Race Condition,我知道竞争条件的风险,以及写入或读取的值可能被破坏。我所处的情况是,我在布尔数和整数以及一些实例类上有竞争 这是否会导致程序崩溃,或者除了数据无效之外,还会对我的程序造成任何其他恶劣影响?我有最坏的担心吗 我的程序有两个版本,一个是调试版本,另一个版本有很多优化选项。我担心最后一个问题,因为它会进入生产阶段。数据无效可能会导致任何事情(即,您调用未定义的行为)。因此,牢记这一点,您的应用程序可能会崩溃、内存泄漏、格式化硬盘驱动器以及几乎任何其他事情 这会导致程序崩溃吗 取决于争夺的资源,但是是的

我知道竞争条件的风险,以及写入或读取的值可能被破坏。我所处的情况是,我在布尔数和整数以及一些实例类上有竞争

这是否会导致程序崩溃,或者除了数据无效之外,还会对我的程序造成任何其他恶劣影响?我有最坏的担心吗


我的程序有两个版本,一个是调试版本,另一个版本有很多优化选项。我担心最后一个问题,因为它会进入生产阶段。

数据无效
可能会导致任何事情(即,您调用未定义的行为)。因此,牢记这一点,您的应用程序可能会崩溃、内存泄漏、格式化硬盘驱动器以及几乎任何其他事情

这会导致程序崩溃吗

取决于争夺的资源,但是是的。如果一个线程获取了资源,而另一个线程需要它进行处理,则可能会出现未定义的行为,甚至程序崩溃

除了数据无效之外,还有其他对我的程序有害的影响吗

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


比赛条件是一个很好的地方,可以找到这些问题的答案。

嗯,“可能导致任何事情”是“未定义的行为”。未定义的行为并不意味着会发生令人讨厌的事情。只是它可以。+1“数据”不仅仅是从文件加载的东西。竞争破坏了哈希表的内部状态,在访问哈希表时导致无限循环。@PeteBecker很好,现在我读了我的陈述,它没有多大意义。将对其进行重构。谢谢。请不要崩溃,但产生错误的结果对我来说已经是“最糟糕的”了。如果你没有被损坏的数据所困扰,为什么你首先要写那段多线程代码???如果你不需要,就把它们注释掉。