この記事では、Python での Tornado の同期および非同期 I/O について紹介します (例付き)。これには特定の参考値があります。必要な友人は参照できます。お役に立てば幸いです。ヘルプ。
Tornado ではコルーチンが推奨されており、シンプルで効率的な非同期処理コードを開発できます。
ご存知のとおり、CPU の動作効率はディスク ストレージよりも高く、ネットワーク リクエストよりも高いため、CPU の処理とストレージの効率が向上します。データの量、またはネットワーク リクエスト (I/O 操作) のペースが一貫していない場合、この時点で、同期または非同期 I/O 操作を選択できます。
同期 I/O 操作では、I/O 操作が完了するまでプロセスがブロックされますが、
非同期 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 にアクセスします。この関数の実行時間は、ネットワーク速度と相手サーバーの応答速度に依存します。アクセスが完全に完了した場合のみ実行されます。結果が得られたら、関数は実行を完了できます。
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 サイトの他の関連記事を参照してください。