Processus et threads

Une application se compose d’un ou plusieurs processus. Un processus, dans les termes les plus simples, est un programme en cours d’exécution. Un ou plusieurs threads s’exécutent dans le contexte du processus. Un thread est l’unité de base à laquelle le système d’exploitation alloue du temps processeur. Un thread peut exécuter n’importe quelle partie du code de processus, y compris les parties en cours d’exécution par un autre thread.

Un objet de travail permet de gérer des groupes de processus en tant qu’unité. Les objets de travail sont des objets namables, sécurisables et partageables qui contrôlent les attributs des processus qui leur sont associés. Les opérations effectuées sur l’objet de travail affectent tous les processus associés à l’objet de travail.

Un pool de threads est une collection de threads de travail qui exécutent efficacement des rappels asynchrones pour le compte de l’application. Le pool de threads est principalement utilisé pour réduire le nombre de threads d’application et assurer la gestion des threads de travail.

Une fibre est une unité d’exécution qui doit être planifiée manuellement par l’application. Les fibres s’exécutent dans le contexte des threads qui les planifient.

La planification en mode utilisateur (UMS) est un mécanisme léger que les applications peuvent utiliser pour planifier leurs propres threads. Les threads UMS diffèrent des fibres en ce que chaque thread UMS a son propre contexte de thread au lieu de partager le contexte de thread d’un thread unique.