POSIX Threads |
Un même processus peut se décomposer en plusieurs morceaux, qui vont s'exécuter simultanément (éventuellement sur plusieurs processeurs, si la machine en a plusieurs), en partageant les mêmes données. C'est beaucoup moins lourd que la commande fork() et les histoires de mémoire partagée. Il n'y a qu'un seul processus. |
Il est aussi possible de faire ça en Perl, mais c'est expérimental, et compiler Perl avec ce genre de choses fait planter dertains modules (en particulier, Gimp). |
THREADS |
|
MUTEX |
Il est parfois nécessaire d'interdire momentanément certaines opérations d'un (ou plusieurs) thread(s) : par exemple, si plusieurs threads sont amenés à lire une variable, faire des calculs avec puis modifier cette variable en fonction du résultat de ces calculs (prosaïquement, ça veut dire incrémenter une variable ; mais plus généralement, cela concerne toutes les opérations de lecture et d'écriture d'une variable), il ne faut pas qu'ils le fassent en même temps. |
Mutex signifie « mutual exclusion » (exclusion mutuelle, en français) |
|
SIGNAUX ENTRE THREADS |
Les « signaux » entre threads s'appellent des « conditions », mais je préfère le terme plus clair de « signal ». On peut envoyer un signal à un thread en particulier ou à tous les threads. |
|
Vincent Zoonekynd |