Partilhar via


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();
}