Multithreading

Définition - Que signifie le multithreading?

Le multithreading est un type de modèle d'exécution qui permet à plusieurs threads d'exister dans le contexte d'un processus de sorte qu'ils s'exécutent indépendamment mais partagent leurs ressources de processus. Un thread maintient une liste d'informations pertinentes pour son exécution, y compris la planification des priorités, les gestionnaires d'exceptions, un ensemble de registres CPU et l'état de la pile dans l'espace d'adressage de son processus d'hébergement.

Le multithreading est également appelé threading.

Definir Tech explique le multithreading

Le thread peut être utile dans un système à processeur unique en permettant au thread d'exécution principal de répondre aux entrées de l'utilisateur, tandis que le thread de travail supplémentaire peut exécuter des tâches de longue durée qui ne nécessitent pas d'intervention de l'utilisateur en arrière-plan. Le threading dans un système multiprocesseur entraîne une véritable exécution simultanée des threads sur plusieurs processeurs et est donc plus rapide. Cependant, cela nécessite une programmation plus minutieuse pour éviter les comportements non intuitifs tels que les conditions de course, les blocages, etc.

Les systèmes d'exploitation utilisent le threading de deux manières:

  • Multithreading préventif, dans lequel le changement de contexte est contrôlé par le système d'exploitation. La commutation de contexte peut être effectuée à un moment inapproprié. Par conséquent, un thread de haute priorité peut être indirectement préempté par un thread de faible priorité.
  • Multithreading coopératif, dans lequel la commutation de contexte est contrôlée par le thread. Cela pourrait entraîner des problèmes, tels que des blocages, si un thread est bloqué en attendant qu'une ressource devienne libre.

Les versions 32 et 64 bits de Windows utilisent le multithreading préemptif dans lequel le temps processeur disponible est partagé de sorte que tous les threads obtiennent une tranche de temps égale et soient servis dans un mode basé sur la file d'attente. Lors du changement de thread, le contexte d'un thread préempté est stocké et rechargé dans le thread suivant de la file d'attente. La tranche de temps est si courte que les threads en cours d'exécution semblent s'exécuter en parallèle.

Cette définition a été écrite dans le contexte de l'architecture informatique