rsnt_translations
56,437
edits
No edit summary |
No edit summary |
||
Line 196: | Line 196: | ||
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. À chaque incrémentation, 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 attente que la condition est satisfaite. | 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. À chaque incrémentation, 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 attente que la condition est satisfaite. | ||
Une fois que le signal est reçu par le premier fil, le deuxième fil fixe la condition de sortie de la boucle, | Une fois que le signal est reçu par le premier fil, le deuxième fil fixe la condition de sortie de la boucle, lance le mutex et disparait avec <tt>pthread_join</tt>. | ||
Entretemps, le premier fil étant ''réveillé'', celui-ci incrémente de 15 la valeur de <tt>workload</tt> et quitte la fonction. | Entretemps, le premier fil étant ''réveillé'', celui-ci incrémente de 15 la valeur de <tt>workload</tt> et quitte la fonction. |