c++ - 如何编写确保线程安全的测试用例

标签 c++ c multithreading

我用 C++ 编写了一个线程安全(至少目标是这样)的容器类。我在访问成员时锁定互斥量并在完成时释放。 现在,我尝试编写一个测试用例,如果它真的是线程安全的。 比方说,我有 Container 容器和两个线程 Thread1 Thread2。

Container container;
Thread1()
{
    //Add N items to the container
}
Thread2()
{
    //Add N items to the container
}

这样,N=1000 就没问题了。

但我不确定这个回归测试是否足够。有确定性的方法来测试这样的类吗?

谢谢。

最佳答案

没有真正的方法来编写测试来证明它的安全。

您只能将其设计为安全并测试您的设计是否已实现。您能做的最好的事情就是对其进行压力测试。

关于c++ - 如何编写确保线程安全的测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3254608/

相关文章:

python - 使用动态版本的 Python 执行嵌入的 Python 代码时出现致命的 Python 错误

c++ - winapi - 清除 CBitmap 的区域

c++ - 如何初始化和定义指向二维数组的指针?

c - 在 C 中按升序对数组的前 k 个元素进行排序,其余元素按降序排序

multithreading - 如何保证不死锁

c++ - 当我已经对我的文件进行标记后,如何创建倒排索引?

c++ - 我可以使用 break 退出多个嵌套的 'for' 循环吗?

C:如果参数从右向左压入,为什么会出现下面的情况? (64位操作系统,32位程序)

android - 线程和处理程序有什么区别

c# - 如何等待一个方法在另一个线程上完成?