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

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

## Task

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

`run()` | イベントループを作成し、コルーチンを実行し、ループを閉じます。
`create_task()` | asyncio タスクを開始します。
`await` `sleep()` | 数秒間スリープします。
`await` `gather()` | 並行してスケジュールして、待ちます。
`await` `wait_for()` | タイムアウトで実行します。
`await` `shield()` | 取り消しから保護します。
`await` `wait()` | 完了かどうかを監視します。
`current_task()` | 現在のタスクを返します。
`all_tasks()` | イベントループのすべてのタスクを返します。
`Task` | Task オブジェクト
`to_thread()` | Asynchronously run a function in a separate OS thread.
`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) です。

使用例

- asyncio.Event の使用例 。

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

## 例外

`asyncio.TimeoutError` | タイムアウトが発生した場合に `wait_for()` などの関数から送出されます。 `asyncio.TimeoutError` は組み込み例外の `TimeoutError` とは 無関係で継承関係もない ことに注意してください。
`asyncio.CancelledError` | タスクがキャンセルされた場合に送出されます。 `Task.cancel()` も参照してください。

使用例

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

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