Maison > développement back-end > Tutoriel Python > Comment puis-je utiliser efficacement le multithreading en Python pour l'exécution de tâches parallèles ?

Comment puis-je utiliser efficacement le multithreading en Python pour l'exécution de tâches parallèles ?

Linda Hamilton
Libérer: 2024-12-25 02:10:10
original
397 Les gens l'ont consulté

How Can I Effectively Use Multithreading in Python for Parallel Task Execution?

Multithreading en Python

En Python, le multithreading peut être utilisé pour diviser les tâches sur plusieurs threads. Voici un exemple simplifié :

Python 3.3 :

from multiprocessing.dummy import Pool as ThreadPool

my_array = [1, 2, 3]

pool = ThreadPool(4)
results = pool.map(my_function, my_array)
Copier après la connexion

Versions Python antérieures :

Pour transmettre plusieurs arguments, considérer ceci :

my_function = lambda x, y: x * y
list_a = [1, 2, 3]
list_b = [4, 5, 6]

pool = ThreadPool(4)
results = pool.starmap(my_function, zip(list_a, list_b))
Copier après la connexion

Description :

  • La carte est une fonction qui applique une autre fonction à chaque élément d'une séquence et stocke les résultats dans un list.

Implémentation :

  • Multiprocessing.dummy fournit une version parallèle de la fonction map.
  • Il utilise des threads à la place de processus, ce qui le rend adapté aux tâches gourmandes en E/S.
  • La classe Pool crée un ensemble de threads de travail qui exécutent la carte fonctionne en parallèle.

Exemple :

  • Le code fourni crée un Pool avec 4 threads.
  • Il utilise la fonction map pour appliquer une fonction simple à une liste d'URL.
  • Les résultats sont renvoyés dans une liste une fois que tous les threads ont terminé leur tâches.

Remarques supplémentaires :

  • Pour les tâches gourmandes en CPU, envisagez d'utiliser plusieurs processus au lieu de threads.
  • Réussite plusieurs arguments pour une fonction dans map nécessitent une version Python 3.3 ou ultérieure. Pour les versions antérieures, utilisez la solution de contournement mentionnée dans la réponse.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal