A.9 Usando diretivas single
O exemplo a seguir demonstra o single diretiva (seção 2.4.3 na página 15). No exemplo, apenas um thread (geralmente o primeiro thread que encontra a single diretiva) imprime a mensagem de andamento. O usuário não deve fazer suposições para qual thread executará a single seção. Todos os outros threads irá ignorar o single seção e parar na barreira no final da single construir. Se outros threads podem prosseguir sem aguardar que o segmento em execução o single seção, uma nowait cláusula pode ser especificada na single diretiva.
#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();
}