Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Compréhension de la programmation asynchrone | Asynchronous Programming
Concepts Avancés de Python

Compréhension de la programmation asynchrone

Glissez pour afficher le menu

Asynchronous programming est une méthode permettant d'écrire des programmes capables de gérer de nombreuses tâches apparemment en même temps, sans attendre que chaque tâche soit terminée avant d'en commencer une nouvelle. Cela est particulièrement utile pour les tâches qui passent beaucoup de temps en attente, comme la lecture de fichiers, les requêtes réseau ou l'interaction avec des bases de données. Au lieu de bloquer votre programme pendant l'attente de la fin d'une tâche, la programmation asynchrone permet à votre code de continuer à exécuter d'autres tâches.

Au cœur du modèle de programmation asynchrone de Python se trouve la boucle d'événements. La boucle d'événements est responsable de la gestion et de la planification des tâches prêtes à être exécutées. Elle garde une trace de toutes les tâches, vérifie lesquelles attendent quelque chose (comme une entrée ou un minuteur), et exécute celles qui sont prêtes. Cela permet à votre programme de progresser sur plusieurs tâches sans avoir besoin de plusieurs threads ou processus.

Un élément clé de la programmation asynchrone en Python est la coroutine. Les coroutines sont des fonctions spéciales définies avec async def. Elles peuvent suspendre leur exécution à certains moments grâce au mot-clé await, qui indique à la boucle d'événements d'exécuter d'autres tâches pendant l'attente. Lorsque l'opération attendue est terminée, la boucle d'événements reprend la coroutine exactement là où elle s'était arrêtée.

En utilisant la boucle d'événements et les coroutines, il est possible d'écrire du code efficace et réactif, en particulier pour les programmes limités par les entrées/sorties. Cette approche diffère du threading ou du multiprocessing traditionnel car elle évite la surcharge liée à la création de multiples threads ou processus, et s'appuie plutôt sur la boucle d'événements pour gérer le moment où chaque tâche s'exécute.

import asyncio

async def greet_after_delay():
    print("Hello...")
    await asyncio.sleep(2)  # Pause here, let event loop run other tasks
    print("...world!")

# To actually run the coroutine, you need to use the event loop:
asyncio.run(greet_after_delay())

Sortie :

Hello...
...world!
question mark

Laquelle des propositions suivantes décrit le mieux le rôle de la boucle d'événements dans la programmation asynchrone de Python ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 1

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 4. Chapitre 1
some-alt