thread model

멀티스레딩 모델 선택 기준

스레드 모델은 사용자 수준 스케줄러와 커널 스케줄러 중 누가 블로킹과 병렬성을 감당하는지의 차이입니다.

비교 기준
01커널 가시성 02블로킹 영향 03병렬성 04생성 비용 05디버깅
Many-to-One

사용자 스레드는 가볍지만 하나가 블로킹되면 프로세스 전체가 멈출 수 있습니다.

One-to-One

커널이 각 스레드를 스케줄링해 멀티코어 병렬성이 좋지만 생성 비용이 큽니다.

Many-to-Many

사용자 스레드를 여러 커널 스레드에 매핑해 유연성을 얻지만 구현이 복잡합니다.

경량 스레드

코루틴, 가상 스레드, 고루틴은 블로킹 모델과 런타임 스케줄러 특성을 함께 봐야 합니다.