2.6.2 critical コンストラクト
critical ディレクティブは、関連付けられている構造化ブロックの実行を一度に 1 つのスレッドに制限するコンストラクトを識別します。critical ディレクティブの構文は次のとおりです。
#pragma omp critical [(name)] new-line
structured-block
オプションの name は、クリティカル領域を識別するのに使用します。クリティカル領域を識別するのに使用される識別子は外部リンケージを持ち、ラベル、タグ、メンバ、および通常の識別子によって使用される名前空間とは別の名前空間に存在します。
スレッドは、同じ名前の (プログラム内の) クリティカル領域を他のどのスレッドも実行していない状態になるまで、クリティカル領域の入り口で待機します。名前のない critical ディレクティブは、すべて同じ未指定の名前にマップされます。