我目前使用googles的gtest来编写我的单元测试,但它看起来不能测试线程安全性(也就是说,从多个线程访问某些东西并确保它的行为符合规范)。
你用什么来测试线程的安全性?我想要一些跨平台的东西,但是,它至少必须在Windows上工作。
谢谢!
发布于 2011-06-21 03:28:34
如果多线程代码不能立即、明显地被证明是正确的,那么它几乎肯定是错误的。如果是这样,你就不需要测试它了。
认真地说:共享可变状态应该是非常本地化的和罕见的,并且这样做的类应该是明显正确的。
你的线程通常应该通过安全的原语(比如线程安全的工作队列)进行交互。如果您的代码中有许多分散的数据结构,每个结构都有自己的锁定策略,那么您的代码几乎肯定会包含死锁和竞争条件。大规模的测试工作只会发现其中的一些问题。
https://stackoverflow.com/questions/6415003
复制相似问题