Architecture de threads et de tâches

Les threads sont une caractéristique du système d'exploitation qui permettent à la logique de l'application d'être séparée en plusieurs chemins d'exécution simultanés. Cette fonctionnalité est utile lorsque des applications complexes comprennent un grand nombre de tâches à exécuter simultanément.

Lorsqu'un système d'exploitation exécute une instance d'application, il crée une unité appelée processus pour gérer cette instance. Ce processus est associé à un thread d'exécution. Il s'agit de la série d'instructions de programmation exécutées par le code de l'application. Par exemple, si une application simple comprend un seul jeu d'instructions pouvant être exécutées en série, il n'existe qu'un seul chemin d'exécution, ou thread, dans toute l'application. Les applications plus complexes peuvent exécuter plusieurs tâches en même temps, mais pas en série. Pour ce faire, l'application lance plusieurs processus distincts pour chaque tâche. Mais le démarrage d'un processus consomme beaucoup de ressources. Une application peut également lancer plusieurs threads. Les threads consomment relativement peu de ressources. De plus, l'exécution de chaque thread peut être programmée indépendamment des autres threads du même processus.

Les threads permettent aux applications complexes d'utiliser plus efficacement une UC, même sur des ordinateurs dotés d'une seul UC. Avec une UC, vous ne pouvez exécuter qu'un seul thread à la fois. Si un thread exécute une longue opération qui n'utilise pas l'UC, comme par exemple la lecture ou l'écriture sur le disque, un autre thread peut être exécuté avant la fin de la première opération. La possibilité d'exécuter des threads pendant que d'autres attendent la fin d'une opération permet à l'application d'optimiser l'utilisation de l'UC. Cela est particulièrement vrai pour les applications multi-utilisateurs qui utilisent beaucoup d'E/S disque, par exemple un serveur de bases de données. Les ordinateurs dotés de plusieurs microprocesseurs ou UC peuvent exécuter simultanément un thread par UC. Ainsi, si un ordinateur comprend huit UC, il peut exécuter huit threads en même temps.

Dans cette section