Un thread est une partie des instructions du processus en cours d'exécution.
Un processus peut contenir un ou plusieurs thread (applications dites multi-threadées) s'exécutant en quasi-simultanéité ou simultanément sur les processeurs multi-coeurs. A la différence des processus, les threads partage le même espace mémoire protégé, les mêmes ressources et le même espace mémoire.
Avantages des threads
Chaque thread peux être attribué à une tâche spécifique qui s'exécutera en parallèle des tâches des autres threads. Par exemple, l'utilisation de plusieurs threads dans un programme basé sur une interface utilisateur (les fenêtres sous Windows) permet de conserver une interaction entre l'utilisateur et l'interface lors de l'exécution de tâches prenant du temps sans bloquer l'application (le message "l'application ne répond plus" dans Windows).
Etat des threads
Les threads peuvent êtres soit en cours d'exécution soit en attente d'un événement. Les événements peuvent êtres une entrée utilisateur (clavier, souris, etc...), de la fin d'une opération matériel (entrée/sorties sur disque, réseau, etc...) ou de la fin de l'exécution d'un autre thread du même processus. Ce dernier cas permet la synchronisation entre les threads qui est nécessaire car il est impossible de prévoir dans quel ordre le processus exécutera les threads ni combien de temps d'exécution il leur attribuera. Il est cependant possible de leur attribuer un niveau de priorité comme pour les processus.
Plus d'infos: |