omp critical ディレクティブは、単一スレッドによって一度に実行されなければならないコードのセクションを識別します。
#pragma omp critical [(name)] statement_block
ここで、name は、オプションでクリティカル領域を識別するのに使用することができます。クリティカル領域を命名している ID には、外部結合があり、通常 ID が使用しているネーム・スペースとは異なるネーム・スペースを占めます。
スレッドは、プログラム内の他のスレッドが同じ名前でクリティカル領域を実行しなくなるまで、指定された名前で識別されたクリティカル領域の開始時点で待機します。 omp critical ディレクティブ呼び出しによって特に命名されてはいないクリティカル・セクションは、未指定の同じ名前にマップされます。