Maison  >  Article  >  développement back-end  >  Introduction aux E/S synchrones et asynchrones de Tornado en python (avec exemples)

Introduction aux E/S synchrones et asynchrones de Tornado en python (avec exemples)

不言
不言avant
2018-10-11 14:45:512188parcourir

Cet article vous présente une introduction aux E/S synchrones et asynchrones de Tornado en python (avec des exemples). 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 CPU est supérieure à celle du stockage sur disque et supérieure aux requêtes réseau, ce qui conduit au traitement et au stockage du CPU de données ou Le rythme des requêtes réseau (opérations d'E/S) est incohérent. À l'heure actuelle, 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 de 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