"asyncio" --- 非同期 I/O
************************

======================================================================


Hello World!
^^^^^^^^^^^^

   import asyncio

   async def main():
       print('Hello ...')
       await asyncio.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 構文を使ったコードの 橋
  渡し

-[ asyncio REPL ]-

You can experiment with an "asyncio" concurrent context in the REPL:

   $ python -m asyncio
   asyncio REPL ...
   Use "await" directly instead of "asyncio.run()".
   Type "help", "copyright", "credits" or "license" for more information.
   >>> import asyncio
   >>> await asyncio.sleep(10, result='hello')
   'hello'

Raises an auditing event "cpython.run_stdin" with no arguments.

バージョン 3.9.20 で変更: (also 3.8.20) Emits audit events.

-[ リファレンス ]-

高レベル API

* コルーチンと Task

* ストリーム

* 同期プリミティブ

* サブプロセス

* キュー

* 例外

低レベル API

* イベントループ

* Future

* トランスポートとプロトコル

* ポリシー

* プラットフォームでのサポート

ガイドとチュートリアル

* 高水準の API インデックス

* 低水準の API インデックス

* asyncio での開発

注釈:

  asyncio のソースコードは Lib/asyncio/ にあります。
