如果我有一個原子變量,像這樣:非破壞性原子添加?
#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