38,760
edits
(Created page with "Dans cet exemple, deux fils esclaves modifient la valeur de l'entier <tt>workload</tt> dont la valeur initiale doit être plus petite ou égale à 25. Le premier fil verrouill...") |
(Updating to match new version of source page) |
||
Line 194: | Line 194: | ||
} | } | ||
}} | }} | ||
<div class="mw-translate-fuzzy"> | |||
Dans cet exemple, deux fils esclaves modifient la valeur de l'entier <tt>workload</tt> dont la valeur initiale doit être plus petite ou égale à 25. Le premier fil verrouille le mutex et attend parce que <tt>workload <= 25</tt>; la variable-condition <tt>ticker</tt> est créée et le mutex est détruit. Le deuxième fil peut alors exécuter la boucle, qui elle incrémente de trois la valeur de <tt>workload</tt> à chaque itération. Après chaque itération, le deuxième fil vérifie si la valeur de <tt>workload</tt> est plus grande que 25; si c'est le cas, le fil appelle <tt>[http://pubs.opengroup.org/onlinepubs/007908799/xsh/pthread_cond_signal.html pthread_cond_signal]</tt> pour signaler au fil en attende de <tt>ticker</tt> que la condition est présente. Si plusieurs fils sont en attente de <tt>ticker</tt>, il faut utiliser <tt>[http://pubs.opengroup.org/onlinepubs/009695399/functions/pthread_cond_broadcast.html pthread_cond_broadcast]</tt> pour signaler la présence de la condition à tous les fils en attente. | Dans cet exemple, deux fils esclaves modifient la valeur de l'entier <tt>workload</tt> dont la valeur initiale doit être plus petite ou égale à 25. Le premier fil verrouille le mutex et attend parce que <tt>workload <= 25</tt>; la variable-condition <tt>ticker</tt> est créée et le mutex est détruit. Le deuxième fil peut alors exécuter la boucle, qui elle incrémente de trois la valeur de <tt>workload</tt> à chaque itération. Après chaque itération, le deuxième fil vérifie si la valeur de <tt>workload</tt> est plus grande que 25; si c'est le cas, le fil appelle <tt>[http://pubs.opengroup.org/onlinepubs/007908799/xsh/pthread_cond_signal.html pthread_cond_signal]</tt> pour signaler au fil en attende de <tt>ticker</tt> que la condition est présente. Si plusieurs fils sont en attente de <tt>ticker</tt>, il faut utiliser <tt>[http://pubs.opengroup.org/onlinepubs/009695399/functions/pthread_cond_broadcast.html pthread_cond_broadcast]</tt> pour signaler la présence de la condition à tous les fils en attente. | ||
</div> | |||
=Pour en savoir plus= | =Pour en savoir plus= | ||
Pour plus d'information sur pthreads, sur les arguments optionnels pour les diverses fonctions (les paramètres utilisés dans cette page utilisent l'argument par défaut NULL) et sur les sujets de niveau avancé, nous recommandons l'ouvrage de David Butenhof, [https://ptgmedia.pearsoncmg.com/images/9780201633924/samplepages/0201633922.pdf Programming with POSIX Threads] ou l'excellent [https://computing.llnl.gov/tutorials/pthreads tutoriel du Lawrence Livermore National Laboratory]. | Pour plus d'information sur pthreads, sur les arguments optionnels pour les diverses fonctions (les paramètres utilisés dans cette page utilisent l'argument par défaut NULL) et sur les sujets de niveau avancé, nous recommandons l'ouvrage de David Butenhof, [https://ptgmedia.pearsoncmg.com/images/9780201633924/samplepages/0201633922.pdf Programming with POSIX Threads] ou l'excellent [https://computing.llnl.gov/tutorials/pthreads tutoriel du Lawrence Livermore National Laboratory]. |