Compound / Technical TermC2en
coroutines
//ˌkoʊruːˈtiːnz//
co-
함께, 상호 간에, 협력하는 (together, mutually)
routine
특정한 작업을 수행하기 위한 일련의 명령문 집합 (subroutine)
계층적 구조(부모가 자식을 호출)가 아닌, 대등한 관계의 루틴들이 서로 실행 권한을 양보(yield)하며 협력하는 구조를 의미함.
Grammar & Usage
Note:컴퓨터 과학 분야에서 주로 복수형으로 쓰이며, 비동기 프로그래밍의 핵심 개념으로 사용됨.
Usage & Meaning
실행을 일시 중단했다가 나중에 중단된 지점부터 다시 재개할 수 있는 컴퓨터 프로그래밍 구성 요소.
일반적인 함수(subroutine)는 한 번 실행되면 끝날 때까지 멈추지 않지만, 'co-'가 붙음으로써 루틴들이 서로 제어권을 주고받으며 '함께' 실행되는 논리로 확장됨.
“Coroutines allow for efficient handling of asynchronous tasks without the overhead of multiple threads.”
코루틴은 여러 스레드를 사용하는 오버헤드 없이 비동기 작업을 효율적으로 처리할 수 있게 해준다.C2
Often used with:
async/awaityieldcooperative multitaskingnon-blocking I/Oevent loop
vs. Threads
스레드는 운영체제가 강제로 실행을 전환(선점형)하지만, 코루틴은 프로그램 코드 내에서 스스로 실행을 양보(협력형)하여 컨텍스트 스위칭 비용이 훨씬 적음.