函式
<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操作同步,遵循一個單一的總順序。

返回值



資料競爭

呼叫此函式不會啟動資料競爭。

異常安全

無異常保證: 絕不丟擲異常。

另見