En Python, quelle est la différence réelle entre await
dans une coroutine et en utilisant asyncio.run()
? Ils semblent tous deux exécuter une coroutine, la seule différence que je peux voir étant que await
ne peut être utilisé que dans une coroutine.
Réponse
Trop de publicités?C'est la différence exacte. Il devrait y avoir exactement un appel à asyncio.run()
dans votre code, qui bloquera jusqu'à ce que toutes les coroutines soient terminées.
À l'intérieur d'une coroutine, vous pouvez utiliser await
pour suspendre la fonction en cours, et asyncio
reprendra la fonction à une date ultérieure. Tout cela se passe à l'intérieur de l'élément asyncio.run()
qui planifie quelles fonctions peuvent être exécutées et à quel moment.