Maison  >  Article  >  développement back-end  >  Que sont les coroutines en python ? (Exemple d'analyse)

Que sont les coroutines en python ? (Exemple d'analyse)

乌拉乌拉~
乌拉乌拉~original
2018-08-23 17:42:002030parcourir

Dans l'article suivant, nous découvrirons ce que sont les coroutines en python. Découvrez lescoroutines python et le rôle que les coroutines peuvent jouer dans la programmation python.

coroutine python

Les opérations des threads et des processus sont déclenchées par le programme via l'interface système, et l'exécuteur final est le système, le fonctionnement de la coroutine est ; le programmeur.

L'importance de l'existence des coroutines : pour les applications multithread, le CPU change l'exécution entre les threads via le découpage, et il faut du temps pour changer de thread (enregistrer l'état et continuer la prochaine fois). Les coroutines n'utilisent qu'un seul thread pour spécifier l'ordre d'exécution d'un certain bloc de code dans un thread.

Scénarios applicables pour les coroutines : lorsqu'il y a un grand nombre d'opérations (IO) qui ne nécessitent pas de CPU, cela convient aux coroutines ;

la boucle d'événements est le point de contrôle pour l'exécution de la coroutine ; Si vous souhaitez exécuter la coroutine, vous devez les utiliser.

La boucle d'événements offre les fonctionnalités suivantes :

Enregistrement, exécution, annulation des appels différés (fonctions asynchrones)

Créer des protocoles client et serveur (outils) pour la communication

Créer des sous-processus et des protocoles (outils) qui communiquent avec d'autres programmes

Envoyer des appels de fonction dans le pool de threads

Donnons un exemple :

Instance Coroutine

import asyncio

asyncdef cor1():
    print("COR1 start")
    await
    cor2()
    print("COR1 end")
    
asyncdef cor2():
    print("COR2")
    
loop = asyncio.get_event_loop()
loop.run_until_complete(cor1())
loop.close()

Les trois dernières lignes sont au centre.

asyncio.get_event_loop() : asyncio démarre la boucle d'événements par défaut

run_until_complete() : Cette fonction bloque l'exécution, jusqu'à ce que toutes les fonctions asynchrones soient exécutées,

close () : Ferme la boucle d'événement.

Ce qui précède est tout le contenu décrit dans cet article. Cet article présente principalement les connaissances pertinentes de la coroutine python. J'espère que vous pourrez utiliser les informations pour comprendre le contenu ci-dessus. J'espère que ce que j'ai décrit dans cet article vous sera utile et vous facilitera l'apprentissage de Python.

Pour plus de connaissances connexes, veuillez visiter la colonne Tutoriel Python du site Web php chinois.

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!

Déclaration:
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