코루틴 함수는 비동기 설계의 핵심 구성 요소입니다. 동시성 프레임워크에 대한 모든 중요한 기능인 프로그램의 일부 실행을 중지하고, 해당 호출의 상태를 보존하고, 나중에 상태를 다시 입력하기 위한 언어 구문입니다. 코루틴은 동시 작업을 위해 설계된 언어 구문입니다. 코루틴 함수는 호출될 때 코루틴 개체를 만들고 호출자는 코루틴의 send() 메서드를 사용하여 함수의 코드를 실행할 수 있습니다. 코루틴은 다른 코루틴과 await 키워드를 사용하여 실행을 일시 중지할 수 있습니다. 일시 중지되는 동안 코루틴의 상태가 유지되므로 다음에 깨어날 때 중단된 위치에서 다시 시작할 수 있습니다. 참고 : 이 기사에서는 비동기 IO의 언어 독립적 인 디자인을 나타내기 위해 비동기 IO라는 용어를 사용하지만 비동기는 파이썬 패키지를 참조합니다. 코루틴은 발전기 방법의 특수성을 활용하는 용도가 변경된 발전기입니다. 비동기 IO는 파이썬에서 전용 지원을 받은 동시 프로그래밍 디자인으로 파이썬 3.4에서 3.7까지 빠르게 진화하고 있습니다. 생성기 기반 코루틴은 비동기/await 구문을 선행합니다.

그들은 선물 및 기타 코루틴을 기다리는 표현식의 수율을 사용하는 파이썬 생성기입니다. 더 많은 것을 탐색하고 싶다면 코루틴이 공식적으로 도입된 PEP 342에서 시작할 수 있습니다. 브렛 캐논의 도대체 파이썬에서 비동기 대기 작업을 수행하는 방법도 좋은 읽기입니다, 비동기에 PYMOTW 쓰기입니다. 마지막으로, 코루틴과 동시성에 대한 데이비드 비즐리의 호기심 코스가 있는데, 이 코스는 코루틴이 실행되는 메커니즘에 대해 자세히 알아보는 것입니다. Python 3.5는 기본적으로 비동기 데프를 사용하여 이러한 코루틴을 정의하고 await를 사용하여 제어를 산출하는 새로운 언어 기능을 도입했으며, 비동기에 대한 예제는 새로운 기능을 활용합니다. 이전 버전의 Python 3에서는 asyncio.coroutine() 데코레이터로 래핑된 생성기 함수를 사용하고 동일한 효과를 얻기 위해 수율을 생성할 수 있습니다. 파이썬 3.7에서 소개 된 asyncio.run ()은 이벤트 루프를 얻고 완료로 표시 될 때까지 작업을 실행한 다음 이벤트 루프를 닫습니다. 파이썬의 비동기 IO는 신속하게 진화했으며 언제 왔는지 추적하기가 어려울 수 있습니다. 다음은 비동기와 관련된 파이썬 마이너 버전 변경 및 소개 목록입니다: 3.4: 임시 API 상태가 있는 파이썬 표준 라이브러리에 비동기가 도입되었습니다.