asyncio는 Python에서 async와 await 문법을 사용해 동시성 코드를 작성하도록 돕는 표준 라이브러리이다.
Python 주요 기능 |
|---|
Python 리스트 컴프리헨션 · Python 모듈 · Python 예외 처리 · Python venv · Python asyncio |
Python dataclass · Python pathlib · Python 타입 힌트 · Python unittest · Python 생성기 |
원리
이벤트 루프가 준비된 작업을 실행하고 코루틴이 비동기 대기 지점에서 실행 기회를 양보한다. 네트워크 입출력, 작업 취소, 동기화 등의 API를 제공한다.
예시
여러 서버의 응답을 기다리는 작업을 태스크로 구성하면 하나의 응답을 기다리는 동안 다른 작업이 진전될 수 있다.
주의할 점
CPU 계산이나 동기식 입출력이 루프를 오래 점유하면 다른 태스크도 지연된다. async를 붙이는 것만으로 코드가 병렬화되지는 않으며 취소와 자원 정리를 설계해야 한다.