Tutoriel multithreading

Le multithreading est une technique de programmation qui consiste à découper une tâche en threads d’exécution distincts. Ces threads s’exécutent simultanément, soit en étant affectés à différents cœurs de traitement, soit par découpage temporel.

Lors de la conception d’un programme multithread, les threads doivent être rendus aussi indépendants les uns des autres que possible, pour obtenir la plus grande accélération. En pratique, les threads sont rarement totalement indépendants, ce qui rend la synchronisation nécessaire. L’accélération théorique maximale peut être calculée à l’aide de la [loi d’Amdahl] (https://en.wikipedia.org/wiki/Amdahl%27s_law).

Avantages

  • Accélérer le temps d’exécution en utilisant efficacement les ressources de traitement disponibles
  • Permettre à un processus de rester réactif sans avoir à diviser de longs calculs ou des opérations d’E/S coûteuses
  • Priorisez facilement certaines opérations par rapport à d’autres

Désavantages

  • Sans une conception soignée, des bogues difficiles à trouver peuvent être introduits
  • La création de threads implique des frais généraux