Heim > Backend-Entwicklung > Python-Tutorial > Erklärung des Tornado-Beispielcodes für synchrone und asynchrone E/A in Python

Erklärung des Tornado-Beispielcodes für synchrone und asynchrone E/A in Python

不言
Freigeben: 2018-10-16 16:08:36
nach vorne
2238 Leute haben es durchsucht
Dieser Artikel enthält eine Erklärung des Tornado-Synchronisations- und asynchronen E/A-Beispielcodes. Ich hoffe, dass er für Freunde hilfreich ist.

Coroutine ist eine empfohlene Programmiermethode in Tornado. Mit Coroutine können Sie einfachen und effizienten asynchronen Verarbeitungscode entwickeln.

Vergleich von synchroner und asynchroner E/A

Wie wir alle wissen, ist die Betriebseffizienz der CPU höher als die des Festplattenspeichers und höher als die des Netzwerks Dies führt dazu, dass die Verarbeitung der Daten nicht mit der Geschwindigkeit der Datenspeicherung oder der Netzwerkanforderungen übereinstimmt (E/A-Vorgänge).

Synchrone E/A-Vorgänge führen dazu, dass der Prozess blockiert, bis der E/A-Vorgang abgeschlossen ist.

Asynchrone E/A-Vorgänge führen nicht dazu, dass der anfordernde Prozess blockiert.

Einfaches Codebeispiel für Tornado synchrones I/O:

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()
Nach dem Login kopieren

HTTPClient ist Tornatos synchroner Zugriffs-HTTP-Client. Die Funktion synchronous_visit() im obigen Code verwendet einen typischen synchronen E/A-Vorgang, um auf die URL zuzugreifen. Die Ausführungszeit dieser Funktion hängt von der Netzwerkgeschwindigkeit und der Antwortgeschwindigkeit des anderen Servers ab Nachdem das Ergebnis erhalten wurde, kann diese Funktion ausgeführt werden.

Einfaches Codebeispiel für asynchrone Tornado-E/A:

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)
Nach dem Login kopieren

AsyncHTTPClient ist Tornados HTTP-Client für asynchronen Zugriff. In der Funktion asynchronous_visit() im obigen Code wird AsyncHTTPClient verwendet, um asynchron auf die Website eines Drittanbieters zuzugreifen. Die Funktion http_client.fetch() kehrt sofort nach dem Aufruf zurück, ohne auf den Abschluss des tatsächlichen Zugriffs zu warten, was zu asynchronous_visit( führt. ) wird ebenfalls sofort ausgeführt. Wenn der Zugriff auf die URL tatsächlich abgeschlossen ist, ruft AsyncHTTPClient die durch den Callback-Parameter angegebene Funktion auf, in der die Zugriffsergebnisse verarbeitet werden können.

Das obige ist der detaillierte Inhalt vonErklärung des Tornado-Beispielcodes für synchrone und asynchrone E/A in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage