# 고수준 API 색인

이 페이지에는 모든 고수준의 async/await 활성화된 asyncio API가 나열됩니다.

## 태스크

asyncio 프로그램을 실행하고, 태스크를 만들고, 시간제한 있게 여러 가지를 기다리는 유틸리티.

`run()` | 이벤트 루프를 만들고, 코루틴을 실행하고, 루프를 닫습니다.
`Runner` | A context manager that simplifies multiple async function calls.
`Task` | Task 객체.
`TaskGroup` | A context manager that holds a group of tasks. Provides a convenient and reliable way to wait for all tasks in the group to finish.
`create_task()` | asyncio Task를 시작한 후 반환합니다.
`current_task()` | 현재 Task를 돌려줍니다.
`all_tasks()` | 이벤트 루프의 아직 종료하지 않은 모든 태스크를 반환합니다.
`await` `sleep()` | 몇 초 동안 잠잡니다.
`await` `gather()` | 여러 가지를 동시에 예약하고 기다립니다.
`await` `wait_for()` | 시간제한 있게 실행합니다.
`await` `shield()` | 취소로부터 보호합니다.
`await` `wait()` | 완료를 감시합니다.
`timeout()` | Run with a timeout. Useful in cases when `wait_for` is not suitable.
`to_thread()` | 별도의 OS 스레드에서 함수를 비동기적으로 실행합니다.
`run_coroutine_threadsafe()` | 다른 OS 스레드에서 코루틴을 예약합니다.
`for in` `as_completed()` | `for` 루프로 완료를 감시합니다.

예제

- 여러 가지를 병렬로 실행하기 위해 asyncio.gather() 사용하기.

- 시간제한을 주기 위해 asyncio.wait_for() 사용하기.

- 취소.

- asyncio.sleep() 사용하기.

- 주 태스크 설명서 페이지를 참조하십시오.

## 큐

큐는 여러 asyncio 태스크 간에 작업을 분산하고, 연결 풀과 pub/sub 패턴을 구현하는 데 사용해야 합니다.

`Queue` | FIFO 큐.
`PriorityQueue` | 우선순위 큐.
`LifoQueue` | LIFO 큐.

예제

- 여러 태스크로 작업부하를 분산하는데 asyncio.Queue 사용하기.

- 큐 설명서 페이지도 참조하십시오.

## 서브 프로세스

서브 프로세스를 생성하고 셸 명령을 실행하는 유틸리티.

`await` `create_subprocess_exec()` | 서브 프로세스를 만듭니다.
`await` `create_subprocess_shell()` | 셸 명령을 실행합니다.

예제

- 셸 명령 실행하기.

- 서브 프로세스 API 설명서도 참조하십시오.

## 스트림

네트워크 IO로 작업하는 고수준 API

`await` `open_connection()` | TCP 연결을 만듭니다.
`await` `open_unix_connection()` | 유닉스 소켓 연결을 만듭니다.
`await` `start_server()` | TCP 서버를 시작합니다.
`await` `start_unix_server()` | 유닉스 소켓 서버를 시작합니다.
`StreamReader` | 네트워크 데이터를 수신하는 고수준 async/await 객체.
`StreamWriter` | 네트워크 데이터를 보내는 고수준 async/await 객체.

예제

- 예제 TCP 클라이언트.

- 스트림 API 설명서도 참조하십시오.

## 동기화

태스크에 쓸 수 있는 threading과 유사한 동기화 프리미티브.

`Lock` | 뮤텍스 록.
`Event` | 이벤트 객체.
`Condition` | 조건 객체.
`Semaphore` | 세마포어.
`BoundedSemaphore` | 제한된 세마포어.
`Barrier` | 장벽 객체.

예제

- asyncio.Event 사용하기.

- asyncio.Barrier 사용하기.

- asyncio 동기화 프리미티브의 설명서도 참조하십시오.

## 예외

`asyncio.CancelledError` | Task가 취소될 때 발생합니다. `Task.cancel()`도 참조하십시오.
`asyncio.BrokenBarrierError` | Barrier 가 깨질 때 발생합니다. `Barrier.wait()`도 참조하십시오.

예제

- 취소 요청 시에 코드를 실행하기 위해 CancelledError 처리하기.

- asyncio 전용 예외의 전체 목록도 참조하십시오.