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
}