Partager via


A.9 Utilisation de directives simples

L'exemple suivant illustre la directive d' single (section 2.4.3 à la page 15). Dans l'exemple, un seul thread (généralement le premier thread qui rencontre la directive d' single ) imprime le message de progression. L'utilisateur ne doit effectuer aucune hypothèses quant à laquelle le thread exécute la section d' single . Tous les autres threads ignorent la section d' single et arrêtera au cloisonnement à la fin de l'élément d' single . Si d'autres threads peuvent continuer sans attendre que le thread s'exécutant la section d' single , une clause d' nowait peut être spécifiée dans la directive d' 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();
}