Python의 동시성은 I/O에 강한 asyncio, 막히는 I/O를 함께 처리하는 스레드, CPU 작업을 병렬화하는 프로세스로 나눠 봐. async def 호출은 본문을 실행하지 않고 코루틴을 돌려주며 await해야 진행돼.
asyncio.run은 최상위 이벤트 루프를 열고 닫고, Task는 코루틴을 예약해 함께 진행시켜. Python 3.11의 TaskGroup은 블록을 나가기 전에 만든 작업을 모두 끝내거나 취소하고 여러 실패를 묶어. 만든 작업은 수명과 예외를 회수할 주인이 있어야 해.