C++ 11引入了std::atomic<>模板库.该标准指定原子设置/获取由多个线程共享的变量的store()和load()操作.
我的问题是分配和访问操作也是原子的吗?
即,是:
std::atomic<bool> stop(false);
...
void thread_1_run_until_stopped()
{
if(!stop.load())
/* do stuff */
}
void thread_2_set_stop()
{
stop.store(true);
}
Run Code Online (Sandbox Code Playgroud)
相当于:
void thread_1_run_until_stopped()
{
if(!stop)
/* do stuff */
}
void thread_2_set_stop()
{
stop = true;
}
Run Code Online (Sandbox Code Playgroud)