-
Notifications
You must be signed in to change notification settings - Fork 0
Coroutine
Yongku cho edited this page Jul 30, 2018
·
4 revisions
- 실행 지점을 코드 블럭으로 저장하여, 해당 지점을 실행/중단/재시작을 할 수 있다.
- 그래서 자발적/주기적으로 유휴상태를 만들 수 있기 때문에 비선점 멀티태스킹이 가능하다.
-
동시성
과병렬 처리
가 가능하다. - 코루틴 사이의 전환은
컨텍스트 전환
이 발생하지 않음.
- 기존의 프로세스의 상태 또는 레지스터값을 저장 후
- 다음 프로세스를 수행하도록 새로운 프로세스의 상태 또는 레지스터값을 교체하는 작업
Caller
가 호출되면 Caller
에게 항상 return
을 한다.
반면에 Coroutine
은 특정 지점에서 실행/중단/재시작을 할 수 있다.
선점식 멀티태스킹
을 한다. 즉 동시성
은 제공하만 병렬 처리
는 제공하지 않는다.
반면에 Coroutine
은 컨텍스트 전환
없이 동시성
, 병렬처리
가 가능하다.
반복적인 호출을 위해 새로운 스택 프레임
이 필요하여 최악의 경우에는 스택 오버플로우
가 발생한다.
반면에 Coroutine
은 특정 지점 코드 블럭이 저장되므로 데이터가 쌓이지 않는 다.