2016-05-29 10 views
2

の場合std::atomic<int>どうすれば原子的に値をロードして0にリセットできますか?したがって、私がこの操作を2つのスレッドから実行すると、1つの受信値だけが受信され、別のスレッドは0を受信するはずです。std :: atomic <int> - ロードして原子的に0にリセットしますか?

+0

あなたは達成したいもののための擬似コードを置くことができますか? – Arunmu

+1

['exchange'](http://en.cppreference.com/w/cpp/atomic/atomic/exchange)を使用できますか?両方のスレッドに 'int result = atomic_value.exchange(0)'を実行させてください。 – Cornstalks

答えて

6
std::atomic<int> x = 1; 
int y = x.exchange(0); 
関連する問題