rsnt_translations
56,430
edits
No edit summary |
(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...") |
||
Line 57: | Line 57: | ||
} | } | ||
}} | }} | ||
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. | |||
If you run this test program several times in a row you'll likely notice that the order in which you see the various worker threads saying hello varies, which is what we would expect since they are now running in an asynchronous manner. Each time the program is executed, the twelve threads compete for access to the standard output during the <tt>printf</tt> call and from one execution of the program to another the winners of this competition will change. | If you run this test program several times in a row you'll likely notice that the order in which you see the various worker threads saying hello varies, which is what we would expect since they are now running in an asynchronous manner. Each time the program is executed, the twelve threads compete for access to the standard output during the <tt>printf</tt> call and from one execution of the program to another the winners of this competition will change. |