同時プログラミングおよび非同期プログラミング
コンカレント プログラミング 同時に実行される複数のタスクを処理します。非同期 プログラミングは、タスクが スレッド#をブロックしない コンカレント プログラミングの一種です。 ##。 asyncio は、python の非同期プログラミング用のライブラリで、プログラムがメイン スレッドをブロックせずに I/O 操作を実行できるようにします。
イベントループ
asyncio の中核はイベント ループであり、I/O イベントを監視し、対応するタスクをスケジュールします。コルーチンの準備が完了すると、イベント ループは I/O 操作を待つまでそのコルーチンを実行します。その後、コルーチンを一時停止し、他のコルーチンの実行を継続します。
コルーチンコルーチンは、実行を一時停止および再開できる関数です。 async def キーワードはコルーチンの作成に使用されます。コルーチンは aw
ait キーワードを使用して、I/O 操作が完了するのを待ちます。
asyncio の基本次のコードは、asyncio の基本を示しています:
リーリー 高度な非同期######タスク###### タスクは、asyncio における並列実行の独立した単位です。 asyncio.create_task() 関数はタスクの作成に使用されます。
コルーチン プール
コルーチン プールは、イベント ループによって同時に実行されるコルーチンのグループです。 asyncio.gather() 関数は、すべてのコルーチンの結果を収集するコルーチンを返すコルーチン プールを作成するために使用されます。
######信号処理######asyncio は、シグナルを処理するための asyncio.ensure_future() 関数の使用をサポートしています。これにより、シグナル ハンドラー内でコルーチンを実行できるようになります。
コルーチンをキャンセルコルーチンは、asyncio.Task.cancel() メソッドを呼び出すことでキャンセルできます。コルーチンがキャンセルされると、asyncio.CancelledError 例外が発生します。
デバッグ スキルasyncio.get_event_loop() を使用してイベント ループを取得します
asyncio.gather() を使用してコルーチンの実行を追跡するasyncio.create_task_group() を使用してコルーチン グループを作成し、そのステータスを追跡します
モニタリングとパフォーマンス
I/O 操作のブロックを回避する
タスクおよびコルーチン プールを使用した並列化初心者からエキスパートまで
以上がPython asyncio の上級ガイド: 初心者から専門家までの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。