Thread Model

작업 성격에 따라 달라지는 스레드 모델 선택

커널 스레드는 병렬 실행에 강하고, 경량 스레드는 많은 I/O 대기를 적은 OS 스레드로 처리하는 데 강하다.

1:1

커널 스레드

블로킹 분리와 멀티코어 병렬성이 필요할 때 기본 선택이다.

M:1

코루틴 단일 루프

전환 비용은 낮지만 블로킹 호출과 CPU 독점에 취약하다.

M:N

런타임 스케줄러

고루틴, 가상 스레드처럼 많은 작업을 캐리어 스레드에 다중화한다.

CPU 바운드

코어를 실제로 써야 하므로 커널 스레드, 프로세스, 워커 풀을 우선한다.

I/O 바운드

대기 시간이 핵심이면 async, 고루틴, 가상 스레드처럼 가벼운 동시성이 유리하다.