如何通过线程使用 Google 测试

use*_*690 6 c++ testing unit-testing thread-safety googletest

我有一个串行代码,我想测试它的线程安全性。我正在使用 Google 测试框架进行单元测试。如何使用多个线程调用这些单元测试来测试从多个线程调用这些函数是否安全?

Ant*_*rez 7

Google Test 没有任何特定功能来测试线程安全。

您始终可以推出自己的线程,同时在您的代码上运行,并在加入它们后,检查某些数据是否具有一致的值。

例如,我通过为生产者和消费者运行两个线程来测试线程安全队列,其中生产者在队列中插入固定数量的元素,而消费者设置为提取相同数量的元素。当两个线程完成后,我检查队列是否为空,以及消费者是否以正确的顺序保存元素列表。