Python での Tornado の同期および非同期 I/O の概要 (例付き)

不言
リリース: 2018-10-11 14:48:07
転載
2215 人が閲覧しました

この記事では、Python での Tornado の同期および非同期 I/O について紹介します (例付き)。これには特定の参考値があります。必要な友人は参照できます。お役に立てば幸いです。ヘルプ。

Tornado ではコルーチンが推奨されており、シンプルで効率的な非同期処理コードを開発できます。

同期 I/O と非同期 I/O の比較

ご存知のとおり、CPU の動作効率はディスク ストレージよりも高く、ネットワーク リクエストよりも高いため、CPU の処理とストレージの効率が向上します。データの量、またはネットワーク リクエスト (I/O 操作) のペースが一貫していない場合、この時点で、同期または非同期 I/O 操作を選択できます。

同期 I/O 操作では、I/O 操作が完了するまでプロセスがブロックされますが、

非同期 I/O 操作では、要求元のプロセスはブロックされません。

Tornado 同期 I/O の簡単なコード例:

コード:

#导入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 は Tornado の同期アクセス HTTP クライアントです。上記コードの synchronous_visit() 関数は、一般的な同期 I/O 操作を使用して URL にアクセスします。この関数の実行時間は、ネットワーク速度と相手サーバーの応答速度に依存します。アクセスが完全に完了した場合のみ実行されます。結果が得られたら、関数は実行を完了できます。

Tornado 非同期 I/O の簡単なコード例:

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 は、Tornado の非同期アクセス HTTP クライアントです。上記のコードの asynchronous_visit() 関数では、サードパーティの Web サイトに非同期にアクセスするために AsyncHTTPClient が使用されます。http_client.fetch() 関数は、実際のアクセスが完了するのを待たずに呼び出し直後に戻り、その結果、asynchronous_visit( )もすぐに実行されます。終了します。実際に URL へのアクセスが完了すると、AsyncHTTPClient はコールバック パラメーターで指定された関数を呼び出し、アクセス結果を処理します。

以上がPython での Tornado の同期および非同期 I/O の概要 (例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート