2
bool expected = false;
extern std::atomic<bool> current; // set somewhere else
while (!current.compare_exchange_weak(expected, true)
&& !expected);
什麼是使用此代碼與current.exchange(expected)
?原子交換vs compare_exchange_xxx
exchange
是否會誘發一些競爭條件?
編輯:同樣的問題與current.store(expected)
它可能取決於修改'current'的其他線程中發生了什麼。他們在做什麼? – 2014-12-08 09:04:41
其實我的問題更多關於教育目的,如果別人線程做current.store或current.exchange有一些區別嗎? – Guillaume07 2014-12-08 09:07:34