std::experimental::flex_barrier::arrive_and_drop
來自 cppreference.com
< cpp | experimental | flex_barrier
void arrive_and_drop(); |
(併發技術規範) | |
到達 flex_barrier
的同步點,並將當前執行緒從參與執行緒集中移除。此函式是否會阻塞直到完成階段結束是未指定的。如果函式阻塞,呼叫執行緒可能會被選為執行完成階段。
如果呼叫執行緒不在此 flex_barrier
的參與執行緒集中,則行為是未定義的。
對 arrive_and_drop
的呼叫與 flex_barrier
的完成階段的開始同步。如果呼叫阻塞,則完成階段的完成與從呼叫返回同步。
對 arrive_and_drop
和 arrive_and_wait
的呼叫永遠不會相互或與自身引入資料競爭。
[編輯] 異常
不丟擲任何異常。
[編輯] 註釋
即使每個參與執行緒都呼叫 arrive_and_drop
,完成階段也會被執行。
執行緒在 flex_barrier
上呼叫 arrive_and_drop
後,除了解構函式,它不能在此屏障上呼叫任何成員函式,即使完成階段呼叫的函式物件返回一個正值。
[編輯] 另請參見
到達同步點並阻塞 (公共成員函式) |