rsnt_translations
56,430
edits
(Created page with "Dans cet exemple, l'index du fil (de 0 à 11) est passé en argument; la fonction <tt>task</tt> est donc exécutée par chacun des 12 fils. Remarquez que la fonction <tt>pth...") |
(Created page with "En exécutant ce code plusieurs fois de suite, vous noterez probablement une variation dans l'ordre dans lequel les fils esclaves disent ''hello'', ce qui est prévisible puis...") |
||
Line 59: | Line 59: | ||
Dans cet exemple, l'index du fil (de 0 à 11) est passé en argument; la fonction <tt>task</tt> est donc exécutée par chacun des 12 fils. Remarquez que la fonction <tt>pthread_create</tt> ne bloque pas le fil maître, qui continue à exécuter la fonction <tt>main</tt> après la création de chacun des fils. Une fois les 12 fils créés, le fil maître entre dans la deuxième boucle ''for'' et appelle la fonction bloquante <tt>[http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_join.html pthread_join]</tt> : le fil maître attend alors que les 12 fils esclaves terminent l'exécution de la fonction <tt>task</tt> et qu'ils réintègrent ensuite le fil maître. | Dans cet exemple, l'index du fil (de 0 à 11) est passé en argument; la fonction <tt>task</tt> est donc exécutée par chacun des 12 fils. Remarquez que la fonction <tt>pthread_create</tt> ne bloque pas le fil maître, qui continue à exécuter la fonction <tt>main</tt> après la création de chacun des fils. Une fois les 12 fils créés, le fil maître entre dans la deuxième boucle ''for'' et appelle la fonction bloquante <tt>[http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_join.html pthread_join]</tt> : le fil maître attend alors que les 12 fils esclaves terminent l'exécution de la fonction <tt>task</tt> et qu'ils réintègrent ensuite le fil maître. | ||
En exécutant ce code plusieurs fois de suite, vous noterez probablement une variation dans l'ordre dans lequel les fils esclaves disent ''hello'', ce qui est prévisible puisqu'ils s'exécutent en mode asynchrone. Chaque fois que le programme est exécuté, les 12 fils répondent en même temps à la fonction <tt>printf</tt> et ce n'est jamais le même fil qui remporte la course. | |||
=Synchronizing Data Access= | =Synchronizing Data Access= |