2.6.3 bariery dyrektywy
Bariery dyrektywy synchronizuje wszystkie wątki w zespole.W przypadku każdego wątku w zespole czeka, aż wszystkie inne osiągnęły ten punkt.Składnia bariery dyrektywy jest następująca:
#pragma omp barrier new-line
Po wszystkie wątki w zespole mógł napotkać bariery, każdego wątku w zespole rozpoczyna wykonywanie oświadczeń po dyrektywie bariery równolegle.Należy zauważyć, że ponieważ bariery dyrektywa nie ma instrukcji języka C, jako część jego składni, istnieją pewne ograniczenia dotyczące jego położenie w programie.Zobacz Dodatku C formalne gramatyki.Poniższy przykład ilustruje te ograniczenia.
/* 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
}