std::experimental::barrier::arrive_and_wait
來自 cppreference.com
< cpp | experimental | barrier
void arrive_and_wait(); |
(併發技術規範) | |
阻塞併到達 barrier 的同步點。
如果呼叫執行緒不在此 barrier 的參與執行緒集合中,則行為未定義。
對 arrive_and_wait
的呼叫與 barrier 完成階段的開始同步。完成階段的完成與函式呼叫的返回同步。
對 arrive_and_drop
和 arrive_and_wait
的呼叫永遠不會相互或與自身引入資料競爭。
[編輯] 註釋
執行緒在此呼叫返回後立即呼叫 arrive_and_wait()
或 arrive_and_drop()
是安全的。沒有必要確保所有阻塞執行緒都已退出 arrive_and_wait()
,然後執行緒再次呼叫它。
對於為 num_threads
個執行緒構造的 barrier
,參與執行緒的集合是前 num_threads
個到達其同步點的執行緒。除了因呼叫 arrive_and_drop()
而從集合中移除的執行緒外,此集合不會在每次迴圈中更改。
[編輯] 異常
不丟擲任何異常。
[編輯] 參閱
到達同步點並從參與執行緒集合中移除當前執行緒 (公有成員函式) |