Sobes.tech
Junior — Middle

Quelles méthodes sont implémentées en Python pour exécuter des tâches en parallèle ou de manière concurrente?

sobes.tech IA

Réponse de l'IA

En Python, plusieurs approches et bibliothèques sont utilisées pour exécuter des tâches en parallèle ou de manière concurrente :

  1. Module threading — pour créer des threads. Convient pour les tâches avec beaucoup d’entrées/sorties, mais ne accélère pas les tâches CPU-bound à cause du GIL.

  2. Module multiprocessing — pour créer des processus. Permet de contourner le GIL et d’utiliser efficacement plusieurs cœurs CPU.

  3. Module asyncio — pour la programmation asynchrone avec des coroutines. Idéal pour un grand nombre d’opérations d’entrée/sortie.

  4. Bibliothèques de haut niveau :

    • concurrent.futures.ThreadPoolExecutor et ProcessPoolExecutor — interface pratique pour lancer des tâches dans des threads ou processus.

Exemple d’utilisation de concurrent.futures :

from concurrent.futures import ThreadPoolExecutor

def tâche(n):
    print(f"Tâche {n} en cours")

with ThreadPoolExecutor(max_workers=3) as executor:
    for i in range(5):
        executor.submit(tâche, i)

Ainsi, le choix de la méthode dépend du type de tâche : pour CPU-bound — multiprocessing, pour I/O-bound — threading ou asyncio.