Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Travail avec les Processus | Multithreading vs. Multiprocessing
Concepts Avancés de Python

Travail avec les Processus

Glissez pour afficher le menu

Le module multiprocessing de Python permet d'obtenir un véritable parallélisme en lançant des processus séparés, chacun avec son propre interpréteur Python et son propre espace mémoire. Contrairement aux threads, qui partagent la mémoire et s'exécutent dans le même processus, les processus sont complètement isolés les uns des autres. Cette isolation permet d'éviter la limitation du Global Interpreter Lock (GIL), autorisant ainsi plusieurs cœurs de processeur à travailler en parallèle sur des tâches intensives en calcul. Après avoir visionné la vidéo ci-dessus, il faut comprendre que le parallélisme basé sur les processus est particulièrement utile lorsque des calculs lourds sont nécessaires ou pour exploiter plusieurs cœurs sur des tâches qui seraient autrement limitées par le GIL. Le module multiprocessing propose une API familière, similaire à celle du module threading, ce qui facilite la transition entre threading et processing selon les besoins.

Utilisation de ces classes et fonctions pour concevoir des applications parallèles robustes, gérer le partage de données et coordonner l'exécution des processus en Python.

123456789101112131415
import multiprocessing import time def print_message(message, delay): time.sleep(delay) print(message) process1 = multiprocessing.Process(target=print_message, args=("Process 1 finished", 2)) process2 = multiprocessing.Process(target=print_message, args=("Process 2 finished", 1)) process1.start() process2.start() process1.join() process2.join()

Cet exemple de code montre comment utiliser le module multiprocessing de Python pour exécuter des tâches en parallèle en créant des processus séparés. L'exemple utilise de simples délais temporels et affiche des messages pour illustrer comment les processus peuvent s'exécuter de manière indépendante et simultanée.

Concepts clés illustrés

  • Création de processus :

    • Création de nouveaux processus à l'aide de la classe multiprocessing.Process ;
    • Chaque processus reçoit une fonction cible (print_message) et des arguments à transmettre à cette fonction.
  • Démarrage des processus :

    • La méthode start() lance chaque processus, leur permettant de s'exécuter simultanément ;
    • Une fois démarré, chaque processus exécute sa fonction cible indépendamment des autres.
  • Exécution en parallèle :

    • Les deux processus dorment pendant des durées différentes (2 et 1 secondes) grâce à time.sleep() ;
    • Comme ils s'exécutent en parallèle, le processus avec le délai le plus court termine en premier, même s'il a été lancé après l'autre.
  • Synchronisation des processus :

    • La méthode join() garantit que le programme principal attend la fin des deux processus avant de continuer ;
    • Sans join(), le programme principal pourrait se terminer avant la fin des processus.

Cet exemple montre qu'avec le multiprocessing, les tâches peuvent s'exécuter en même temps sur plusieurs cœurs de processeur, ce qui est idéal pour les opérations gourmandes en ressources CPU qui bénéficient de l'exécution parallèle.

question mark

Quelle affirmation décrit le mieux la différence entre les threads et les processus en Python ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 4

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Section 3. Chapitre 4
some-alt