Introduction à la programmation asynchrone avec Asyncio de Python

Apprendre à gérer les E/S asynchrones en Python

Ce tutoriel donne un aperçu de la programmation asynchrone en Python à l’aide du module asyncio. Apprendre à écrire du code asynchrone avec async/await et voir des exemples pratiques d’E/S asynchrones.

Programmation
Auteur·rice
Affiliation
Date de publication

5 février 2024

Modifié

9 mai 2025

Mots clés

Tutoriel Python Asyncio, La programmation asynchrone en Python, Exemple asynchrone en Python

Introduction

La programmation asynchrone est une approche puissante pour écrire du code concurrent qui peut gérer plusieurs tâches simultanément. Le module asyncio de Python fournit un cadre pour l’écriture de programmes asynchrones à l’aide des mots-clés async et await, ce qui vous permet de gérer efficacement le code réseau structuré de haut niveau et lié aux entrées/sorties.

Dans ce tutoriel, vous apprendrez: - Les concepts fondamentaux de la programmation asynchrone. - Comment utiliser le module asyncio de Python pour écrire des fonctions asynchrones. - Exemples pratiques d’E/S asynchrones.



Qu’est-ce que la programmation asynchrone?

La programmation asynchrone permet à un programme d’initier une tâche et de passer à autre chose sans attendre que la tâche soit terminée. Cette approche non bloquante est idéale pour gérer des opérations telles que les requêtes réseau, les entrées/sorties de fichiers ou d’autres tâches qui peuvent prendre du temps à se réaliser. En utilisant asyncio, vous pouvez améliorer la réactivité et l’efficacité de vos applications.

Concepts de base d’Asyncio

  • Fonctions asynchrones:
    Défini en utilisant la syntaxe async def. Ils renvoient une coroutine, qui est un type spécial d’itérateur qui peut être attendu.

  • Await:
    Le mot-clé await est utilisé pour mettre en pause l’exécution d’une fonction asynchrone jusqu’à ce qu’une coroutine se termine.

  • Boucle d’événements:
    La boucle événementielle est au cœur de toute application asynchrone. Il planifie et gère les tâches asynchrones et les rappels.

Un exemple simple d’Asyncio

Voici un exemple qui démontre une fonction asynchrone de base en Python:

import asyncio

# Définir une fonction asynchrone en utilisant async def
async def greet(name):
    print(f"Hello, {name}!")
    # Simuler un délai asynchrone (par exemple, E/S réseau)
    await asyncio.sleep(1)
    print(f"Goodbye, {name}!")

# Fonction principale pour exécuter la fonction asynchrone
async def main():
    # Planifier l'exécution de la coroutine greet pour deux noms simultanément
    await asyncio.gather(
        greet("Alice"),
        greet("Bob")
    )

# Exécuter la boucle d'événements
if __name__ == "__main__":
    asyncio.run(main())

Explication:
- La fonction greet est définie comme une fonction asynchrone qui imprime un message d’accueil, attend une seconde en utilisant await asyncio.sleep(1), puis imprime un message d’adieu.
- La fonction main utilise asyncio.gather pour exécuter deux instances de greet simultanément.
- asyncio.run(main()) démarre la boucle d’événements et exécute la coroutine main.

Fonctionnalités avancées d’Asyncio

Une fois que vous êtes à l’aise avec les bases, vous pouvez explorer des fonctionnalités plus avancées de asyncio, telles que:

  • Les E/S asynchrones avec les flux:
    Gérer les connexions réseau à l’aide de sockets asynchrones.
  • Planification des tâches:
    Gérer et planifier plusieurs tâches asynchrones.
  • L’intégration avec d’autres bibliothèques:
    Combiner asyncio avec d’autres frameworks pour le développement web ou le traitement de données.

Conclusion

La programmation asynchrone avec le module asyncio de Python peut considérablement améliorer les performances des applications liées aux E/S et la réactivité de votre code. En comprenant les concepts de base et en vous exerçant avec des exemples comme celui ci-dessus, vous serez bien équipé pour commencer à écrire vos propres programmes asynchrones.

Plus d’informations

Bon codage, et bonne exploration de la programmation asynchrone avec asyncio de Python!

Explorer d’autres articles

Note

Voici d’autres articles de la même catégorie pour vous aider à approfondir le sujet.

placeholder

placeholder
Aucun article correspondant
Retour au sommet

Réutilisation

Citation

BibTeX
@online{kassambara2024,
  author = {Kassambara, Alboukadel},
  title = {Introduction à la programmation asynchrone avec Asyncio de
    Python},
  date = {2024-02-05},
  url = {https://www.datanovia.com/fr/learn/programming/python/advanced/asyncio.html},
  langid = {fr}
}
Veuillez citer ce travail comme suit :
Kassambara, Alboukadel. 2024. “Introduction à la programmation asynchrone avec Asyncio de Python.” February 5, 2024. https://www.datanovia.com/fr/learn/programming/python/advanced/asyncio.html.