asyncio
--- 非同期 I/O¶
Hello World!
importasyncioasyncdefmain():print('Hello ...')awaitasyncio.sleep(1)print('... World!')asyncio.run(main())
asyncio はasync/await 構文を使い並行処理の コードを書くためのライブラリです。
asyncio は、高性能なネットワークとウェブサーバ、データベース接続ライブラリ、分散タスクキューなどの複数の非同期 Python フレームワークの基盤として使われています。
asyncio は多くの場合、 IOバウンドだったり高レベルの構造化された ネットワークコードに完璧に適しています。
asyncio は次の目的で高レベル API を提供しています:
並行にPython コルーチンを起動 し、実行全体を管理する
ネットワーク IO と IPC を執り行う
subprocesses を管理する
キュー を使ってタスクを分散する
並列処理のコードを同期 させる
これに加えて、ライブラリやフレームワークの開発者 が次のことをするための低レベル API があります:
ネットワーク通信 、サブプロセス の実行、OS シグナル の取り扱いなどのための非同期 API を提供するイベントループ の作成と管理を行う
Transport を使った効率的な protocol を実装します
コールバックを用いたライブラリと async/await 構文を使ったコードの橋渡し
Availability: not WASI.
このモジュールは WebAssembly では動作しないか、利用不可です。詳しくは、WebAssembly プラットフォーム を見てください。
асинхронный REPL
You can experiment with anasyncio
concurrent context in theREPL:
$ python -m asyncioasyncio REPL ...Use "await" directly instead of "asyncio.run()".Type "help", "copyright", "credits" or "license" for more information.>>>importasyncio>>>awaitasyncio.sleep(10,result='hello')'hello'
引数無しで監査イベントcpython.run_stdin
を送出します。
バージョン 3.12.5 で変更:(also 3.11.10, 3.10.15, 3.9.20, and 3.8.20)Emits audit events.
バージョン 3.13 で変更:Uses PyREPL if possible, in which casePYTHONSTARTUP
isalso executed. Emits audit events.
リファレンス
ガイドとチュートリアル
注釈
asyncio のソースコードはLib/asyncio/ にあります。