我需要为另一个线程设置一个标志才能退出。那个其他线程不时检查退出标志。我是否必须使用 atomic 作为标志,或者只是一个普通的 bool 就足够了,为什么(举例说明如果我使用普通的 bool 可能会出现什么问题)?
#include <future>
bool exit = false;
void thread_fn()
{
while(!exit)
{
//do stuff
if(exit) break;
//do stuff
}
}
int main()
{
auto f = std::async(std::launch::async, thread_fn);
//do stuff
exit = true;
f.get();
}