如果我有一个原子变量,像这样:非破坏性原子添加?
#include <atomic>
std::atomic<int> a = 5;
我想原子检查(a + 4)
是否小于另一个变量,而不会过度写a
原值:
if(a.something(4) < another_variable){
//Do not want a to be incremented by 4 at this point
}
我对原子fetch_and_add()
和++
做了一个快速测试,之后它们似乎都增加了变量a
的值。有没有一种方法可以自动增量测试,而不会导致永久性结果?
'another_variable - = 4'? – 2014-11-25 13:23:24
如果在此线程之外没有可见的副作用,那么需要做些什么?关于什么原子? – Useless 2014-11-25 13:25:57
只是'a + 4
2014-11-25 13:30:12