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

このページには、すべての高水準の 非同期/待機 可能な asyncio API が一覧になっています。

## Task

ユーティリティは asyncio プログラムを実行し、タスクを作成し、タイムアウトのある複数の機能を待っています。

`run()` | イベントループを作成し、コルーチンを実行し、ループを閉じます。
`Runner` | 複数の非同期関数呼び出しをシンプルにするコンテキストマネージャ。
`Task` | Task オブジェクト
`TaskGroup` | タスクのグループを保持するコンテキストマネージャ。グループに属するすべてのタスクが完了するのを待つのに便利で信頼性のある方法を提供します。
`create_task()` | asyncio タスクを開始し、それを返します。
`current_task()` | 現在のタスクを返します。
`all_tasks()` | イベントループのまだ終了していないすべてのタスクを返します。
`await` `sleep()` | 数秒間スリープします。
`await` `gather()` | 並行してスケジュールして、待ちます。
`await` `wait_for()` | タイムアウトで実行します。
`await` `shield()` | 取り消しから保護します。
`await` `wait()` | 完了かどうかを監視します。
`timeout()` | タイムアウト付きで実行します。 `wait_for` が適していない場合に有用です。
`to_thread()` | 別の OS スレッドで非同期的に関数を実行します。
`run_coroutine_threadsafe()` | 別の OS スレッドからコルーチンの実行をスケジュールします。
`for in` `as_completed()` | `for` ループ向けにコルーチンの完了を監視します。

使用例

- asyncio.gather() を使って複数の処理を並列に実行する 。

- asyncio.wait_for() を使って強制的にタイムアウトする 。

- 非同期処理をキャンセルする 。

- asyncio.sleep() を使う 。

- Tasks のドキュメント も参照してください。

## キュー

キューは複数の非同期タスクの分散処理、コネクションプールやpub/subパターンの実装に適しています。

`Queue` | FIFO キューです。
`PriorityQueue` | 優先度付きのキューです。
`LifoQueue` | LIFO キュー (スタック) です。

使用例

- asyncio.Queue を使って複数のタスクを分散処理する.

- Queue のドキュメント も参照してください。

## サブプロセス

サブプロセスを生成したり、シェルコマンドを実行するためのユーティリティです。

`await` `create_subprocess_exec()` | サブプロセスを作成します。
`await` `create_subprocess_shell()` | シェルコマンドを実行します。

使用例

- シェルコマンドを実行する。

- サブプロセス API のドキュメントも参照してください。

## ストリーム

ネットワーク IO を利用するための高水準の APIs です。

`await` `open_connection()` | TCP コネクションを確立します。
`await` `open_unix_connection()` | Unix のソケット接続を確立します。
`await` `start_server()` | TCP サーバーを起動します。
`await` `start_unix_server()` | Unix のソケットサーバーを起動します。
`StreamReader` | ネットワークからデータを受信するための高水準の async/await オブジェクトです。
`StreamWriter` | ネットワークにデータを送信するための高水準の async/await オブジェクトです。

使用例

- TCPクライアントの例.

- ストリーム API のドキュメントも参照してください。

## 同期

タスク内で利用できるスレッド並列処理に似た同期プリミティブです。

`Lock` | ミューテックスロックです。
`Event` | イベントオブジェクトです。
`Condition` | 条件変数オブジェクトです。
`Semaphore` | セマフォ (semaphore) です。
`BoundedSemaphore` | 有限セマフォ (bounded semaphore) です。
`Barrier` | バリアーオブジェクト。

使用例

- asyncio.Event の使用例 。

- asyncio.Barrier を使う。

- asyncio の 同期プリミティブ についてのドキュメントも参照してください。

## 例外

`asyncio.CancelledError` | タスクがキャンセルされた場合に送出されます。 `Task.cancel()` も参照してください。
`asyncio.BrokenBarrierError` | バリアーが破壊された場合に送出されます。 `Barrier.wait()` も参照してください。

使用例

- CancelledError を処理してキャンセル要求に対応するコードを実行する.

- asyncio に特有な例外の完全なリスト も参照してください。