何时不使用原子操作?

Eug*_*e K 10 c c++ multithreading atomic atomicity

我可以想到无关紧要的原因,以及你可能不想使用它们的情况,当你想用非原子操作测试行为设计时.

还有什么其他原因?具体来说,我正在研究一个具有罕见竞争条件的项目,因为测试不使用原子增量.我想知道,为什么当它的函数已经存在时,我不会总是使用原子增量?

谢谢!

Sne*_*tel 8

因为原子比较慢.它们会降低调用线程的速度,并且它们也可能会减慢其他线程的速度,甚至可能会访问相同的原子线.它们还可以禁止编译器执行否则将执行的某些重新排序优化.