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