【发布时间】:2013-09-12 18:18:00
【问题描述】:
我目前正在从事一个大型项目,该项目最近发生了许多变化,最突出的是添加了线程支持。
在查看代码时,我已经确定了可能导致竞态条件的部分,如果不是现在,那么在将来的某个时间。为了防止这种回归,我想编写一个测试,可以可靠地检测该特定区域中的竞争条件,以确保未来的提交不会导致此错误。
代码中没有乱七八糟的 sleep() 语句,而是一个潜在的死锁和竞争雷区,我想确保健壮性。
这个项目完全是用 C 语言编写的。那么,我是否可以编写单元测试来防止出现竞争条件?
【问题讨论】:
-
这很难做到,并且很大程度上取决于具体的应用程序细节。通过直接行动导致比赛条件失败也是非常困难的,而且通常是不可能的。
标签: c multithreading concurrency race-condition