六个原子操作类型:memory_order_relaxed, memory_order_consume,memory_order_acquire, memory_order_release
对于acquire 和release, acquire 会等待release x.load 会失败,x.store 必然会先于x.load
void write_x_then_y()
{
Sleep(10000);
x.store(true, memory_order_release);
cout << "find" << endl;
}
void read_y_then_x()
{
while (!x.load(memory_order_acquire))
{
cout << "wait" << endl;
}
cout << "finish" << endl;
}