A.9 Использование отдельных директив
В следующем примере демонстрируется single директива (раздел 2.4.3 на странице 15). В примере только один поток (обычно первый поток, который обнаруживает single директива) выводит сообщение о ходе выполнения. Пользователь не должен выполнять любые допущения о которых выполняется поток single раздел. Все другие потоки пропустят single раздел и stop в барьере в конце single конструкция. Если другие потоки могут продолжаться без ожидания выполнения потока single раздел, a nowait предложение можно определить в single директива.
#pragma omp parallel
{
#pragma omp single
printf_s("Beginning work1.\n");
work1();
#pragma omp single
printf_s("Finishing work1.\n");
#pragma omp single nowait
printf_s("Finished work1 and beginning work2.\n");
work2();
}