Sommaire

Les threads en C#

Si l’expression « fil d’exécution » se rencontre parfois, on utilise, y compris dans des contextes francophones, le mot « thread » pour désigner ce qui suit. Supposons d’abord que nous travaillons sur une machine à un seul processeur. Il s’agit de pouvoir découper les multiples demandes de traitements adressées à ce CPU en plusieurs unités de traitement que l’on appelle donc « thread ». Un thread peut donc être envisagé comme un processeur virtualisé auquel on affecte une mémoire virtuelle : face à une tâche donnée, le système décide de lui affecter un thread en charge spécialement de ce traitement.

Le langage C# permet de créer, lancer, interrompre et de manière générale de gérer des threads.

C’est à ce stade qu’intervient réellement la notion de parallélisme. Le système d’exploitation Windows va donc se charger de laisser s’exécuter un thread puis va basculer sur un autre, etc. Le système d’exploitation aura également à répartir les différents threads en cours sur les différents processeurs (dans le cas d’une machine multicœurs).

L’étape qui consiste à faire basculer le processeur d’un thread à un autre est appelée en français « commutation ...