如何编写测试用例以确保线程安全

xyz*_*yzt 2 c c++ multithreading

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

Container container;
Thread1()
{
    //Add N items to the container
}
Thread2()
{
    //Add N items to the container
}
Run Code Online (Sandbox Code Playgroud)

通过这种方式,N = 1000可以正常工作.

但我不确定这种回归测试是否足够.是否有一种确定性的方法来测试这样的类?

谢谢.

Kei*_*las 7

没有真正的方法来编写测试来证明其安全性.

您只能设计它,以便安全并测试您的设计是否已实施.你能做的最好是压力测试吧.