Kotlin

코루틴, Coroutine

Wook No.1 2021. 5. 24. 12:49

코루틴(Coroutine) 이란

서브 루틴을 일시 정지하고 재개할 수 있는 프로그래밍

 

Thread와 차이점

 

Thread

  • OS의 Native Thread에 직접 링크되어 동작하여 많은 시스템 자원을 사용한다.
  • Thread간 전환 시에도 CPU의 상태 체크가 필요하므로 그만큼의 비용이 발생한다

Thread

  • 코루틴은 즉시 실행하는 게 아니며, Thread와 다르게 OS의 영향을 받지 않아 그만큼 비용이 들어가지 않는다.
  • 코루틴 전환시 Context Switch가 일어나지 않는다.
  • 개발자가 직접 루틴을 언제 실행할지, 언제 종료할지 모두 지정이 가능하다.
  • 이렇게 생성한 루틴은 작업 전환 시에 시스템의 영향을 받지 않아 그에 따른 비용이 발생하지 않는다.