코루틴
최근 수정 시각:
분류
코루틴은 서브 루틴을 일시 정지하고 재개할 수 있는 구성 요소를 말한다. 쉽게 말해 필요에 따라 일시 정지할 수 있는 함수를 말한다.
코루틴을 사용하여 I/O 처리를 극대화할 수 있는데, 이는 단순히 대기하는 작업을 기다리는 동안 다른 작업을 먼저 처리함으로써 CPU의 유휴 시간(Idle time)을 최소화 할 수 있기 때문이다. 코루틴은 멀티쓰레드를 대체하기 위해 등장한 것은 아니다.
코루틴을 사용하여 I/O 처리를 극대화할 수 있는데, 이는 단순히 대기하는 작업을 기다리는 동안 다른 작업을 먼저 처리함으로써 CPU의 유휴 시간(Idle time)을 최소화 할 수 있기 때문이다. 코루틴은 멀티쓰레드를 대체하기 위해 등장한 것은 아니다.
스레드는 프로세스 내에서 실행되는 흐름의 단위를 말한다. 그리고 코루틴은 (일시) 정지 가능한 함수로써, 기본적으로 하나의 스레드를 가진다. 따라서 직접적인 관계는 없다.
Go는 언어 차원에서 스레드와 코루틴을 혼합한 '고루틴'이라는 새로운 기능을 제공한다. 여러 스레드에서 코루틴이 한꺼번에 실행된다. 기존의 운영체제가 제공하는 스레드보다 작고 빠른 경량 스레드 개념이며 스레드처럼 동시에 실행할 수 있다.
[1] type 명칭은 thread인데, 그 내용은 coroutine
이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외)
기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권을 갖습니다.
나무위키는 백과사전이 아니며 검증되지 않았거나, 편향적이거나, 잘못된 서술이 있을 수 있습니다.
나무위키는 위키위키입니다. 여러분이 직접 문서를 고칠 수 있으며, 다른 사람의 의견을 원할 경우 직접 토론을 발제할 수 있습니다.