Maison >développement back-end >Tutoriel Python >Python Multithreading et Multitraitement

Python Multithreading et Multitraitement

DDD
DDDoriginal
2024-12-25 11:11:10646parcourir

Python Multithreading and Multiprocessing

1. Multithreading : concurrence légère

Les threads s'exécutent simultanément au sein du même processus, partageant l'espace mémoire. Le Global Interpreter Lock (GIL) de Python limite les threads à une exécution à la fois, ce qui le rend idéal pour les tâches liées aux E/S mais pas pour les tâches gourmandes en CPU.

Exemple : un programme threadé simple

import threading

def print_numbers():
    for i in range(5):
        print(f"Number: {i}")

# Create and start threads
thread1 = threading.Thread(target=print_numbers)
thread2 = threading.Thread(target=print_numbers)

thread1.start()
thread2.start()
thread1.join()
thread2.join()

2. Multitraitement : le véritable parallélisme

Le multitraitement crée des processus séparés avec un espace mémoire individuel, en contournant le GIL. C'est mieux pour les tâches liées au processeur, comme le traitement des données ou les simulations.

Exemple : bases du multitraitement

from multiprocessing import Process

def print_numbers():
    for i in range(5):
        print(f"Number: {i}")

if __name__ == "__main__":
    process1 = Process(target=print_numbers)
    process2 = Process(target=print_numbers)

    process1.start()
    process2.start()
    process1.join()
    process2.join()

Quand utiliser lequel

  • Utilisez le multithreading pour des tâches telles que les E/S de fichiers, les opérations de base de données ou les requêtes réseau.
  • Utilisez le multitraitement pour des tâches telles que le traitement d'images, l'apprentissage automatique ou l'analyse de données.

Réflexions finales : threads et processus

Avec les threads, Python effectue plusieurs tâches au sein d'un seul processus. Avec les processus, Python atteint un véritable parallélisme sur plusieurs cœurs. Ensemble, ils rendent votre code efficace et évolutif.
_ ? Bravo pour maîtriser la concurrence en Python !_

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn