Maison  >  Article  >  développement back-end  >  Explication du code d'exemple d'E/S synchrone et asynchrone Tornado en Python

Explication du code d'exemple d'E/S synchrone et asynchrone Tornado en Python

不言
不言avant
2018-10-16 16:07:492175parcourir
Le contenu de cet article concerne l'explication de l'exemple de code d'E/S synchrone et asynchrone de Tornado en Python. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Coroutine est une méthode de programmation recommandée dans Tornado. L'utilisation de coroutine permet de développer un code de traitement asynchrone simple et efficace.

Comparaison des E/S synchrones et asynchrones

Comme nous le savons tous, l'efficacité de fonctionnement du processeur est supérieure à celle du stockage sur disque et supérieure aux requêtes réseau, ce qui en résulte dans l'utilisation des données par le CPU Le traitement est incohérent avec le rythme de stockage des données ou les requêtes réseau (opérations d'E/S. Dans ce cas, vous pouvez choisir des opérations d'E/S synchrones ou asynchrones).

Les opérations d'E/S synchrones entraîneront le blocage du processus jusqu'à ce que l'opération d'E/S soit terminée ;

Les opérations d'E/S asynchrones n'entraîneront pas le blocage du processus demandeur.

Exemple de code simple pour les E/S synchrones Tornado :

Code :

#导入Tornado的HTTP客户端
from tornado.httpclient import HTTPClient

def synchronous_visit():
    http_client=HTTPClient()
    #阻塞,知道对网址访问完成
    respone=http_client.fetch("http://www.baidu.com")
    print(respone.body)
synchronous_visit()

HTTPClient est le client HTTP d'accès synchrone de Tornato. La fonction synchronous_visit() dans le code ci-dessus utilise une opération d'E/S synchrone typique pour accéder à l'URL. Le temps d'exécution de cette fonction dépend de la vitesse du réseau et de la vitesse de réponse du serveur de l'autre partie. Uniquement lorsque l'accès est complètement terminé. et le résultat est obtenu, la fonction peut Exécution terminée.

Exemple de code simple d'E/S asynchrones Tornado :

from tornado.httpclient import AsyncHTTPClient
def handle_response(response):
    print(response.body)

def asyncronous_visit():
    http_client=AsyncHTTPClient()
    http_client.fetch("http://www.baoidu.com",callback=handle_response)

AsyncHTTPClient est le client HTTP d'accès asynchrone de Tornado. Dans la fonction asynchronous_visit() dans le code ci-dessus, AsyncHTTPClient est utilisée pour accéder de manière asynchrone au site Web tiers. La fonction http_client.fetch() reviendra immédiatement après l'appel sans attendre la fin de l'accès réel, ce qui entraînera asynchronous_visit(. ) étant également exécuté immédiatement. Lorsque l'accès à l'URL est effectivement terminé, AsyncHTTPClient appellera la fonction spécifiée par le paramètre de rappel, dans laquelle les résultats de l'accès pourront être traités.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer