共用方式為


2.6.3 指示詞障盾

障盾指示詞會同步處理小組中的所有執行緒。 會發生,小組中的每一個執行緒等待直到所有的其他使用者已經達到這一點。 語法障盾指示詞時,如下所示:

#pragma omp barrier new-line

小組中的所有執行緒所都遇到的障礙之後,小組中的每一個執行緒開始執行平行障盾指示詞之後的陳述式時。 請注意,因為障盾指示詞並沒有 c 語言陳述式做為其語法的一部分,有一些限制,在程式中的位置上。 請參閱 < 附錄 c 的正式的文法。 下列範例會示範這些限制。

/* ERROR - The barrier directive cannot be the immediate
*          substatement of an if statement
*/
if (x!=0)
   #pragma omp barrier
...

/* OK - The barrier directive is enclosed in a
*      compound statement.
*/
if (x!=0) {
   #pragma omp barrier
}