쓰레드는 OS가 CPU 상태에 따라 쓰레드 작업을 스케줄링 하기에 쓰레드 간 교체 시 Context switching 비용 발생
코루틴은 하나의 쓰레드 내 코루틴 간 관계 정의를 통해 중단 및 재개하기에 Context switching 비용으로 인한 오버헤드 없이 언어 레벨에서 스케줄링
즉, 코루틴은 메인 쓰레드를 차단하지 않으면서 현재 코루틴 실행을 일시 중지할 수 있는 기능을 제공하기에 경량 쓰레드로도 불림
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
1. 그런데, 코루틴 디스패처로 쓰레드풀에서 가져오면 쓰레드 스위칭이 생기지 않나요??
2. 중단지점에서(작업a) 양보하고 다시 제어권을 받을때의 스위칭이니라
양보하고 다른작업(작업b)이 시작될때 작업b의 시작에 대해 컨텍스트 스위칭이 안생겨서 좋다는거 인가요?
- dc official App
청크들을 한번 쭉 실행할때, 매 청크 수행 시마다 스레드가 스위칭 되는게 아니라 단일 스레드로 수행되니까 스위칭 비용이 없다는거야
감사합니다 - dc App