函数
<atomic>

atomic_thread_fence

extern "C" void atomic_thread_fence (memory_order sync) noexcept;
Thread fence
建立一个多线程栅栏:调用此函数可以成为一个acquirerelease同步点(或两者兼有)。

释放线程中调用此函数之前发生的所有可见的副作用,在获取线程中也会同步发生在此函数调用之前。

调用此函数的效果与 loadstore 原子操作相同,但不会涉及原子值。

参数

sync
操作的同步模式。
这应该是 memory_order enum 类型的一个可能值。
memory order描述
memory_order_relaxedRelaxed调用没有效果。
memory_order_consumeConsume设置一个acquire fence
同步上一个releasesequentially consistent操作的所有可见副作用。
memory_order_acquireAcquire
memory_order_releaseRelease设置一个release fence
将副作用与下一个acquire操作同步。
memory_order_acq_relAcquire/Release设置一个同时是acquire fencerelease fence的栅栏。
同步上一个releasesequentially consistent操作的所有可见副作用,并与下一个acquire操作同步。
memory_order_seq_cstSequentially consistent设置一个sequentially consistent acquire and release fence。
将所有可见的副作用与其他的sequentially consistent操作同步,遵循一个单一的总顺序。

返回值



数据竞争

调用此函数不会启动数据竞争。

异常安全

无异常保证: 绝不抛出异常。

另见