thread model

스레딩 모델 선택

사용자 수준 스레드, 커널 수준 스레드, 가상 스레드와 고루틴은 생성 비용과 블로킹 처리 방식이 다릅니다.

ULT런타임이 전환
KLT커널이 스케줄
M:N많은 작업을 적은 스레드로
runtime고루틴과 가상 스레드
사용자 수준

전환이 빠르지만 하나가 블로킹 시스템 콜에 걸리면 같은 커널 스레드의 작업이 묶일 수 있습니다.

커널 수준

OS가 스케줄링하므로 멀티코어 병렬 실행과 블로킹 분리가 명확합니다.

매핑 모델

Many-to-One은 저렴, One-to-One은 병렬성이 강합니다.

경량 런타임

Go/Java 가상 스레드는 동시 작업을 런타임이 흡수합니다.

CPU 바운드

계산 작업은 실제 CPU 코어를 점유하므로 커널 스레드·프로세스 수가 코어를 어떻게 쓰는지 봅니다.

I/O 바운드

대기 시간이 많다면 async, 고루틴, 가상 스레드처럼 적은 OS 스레드로 많은 요청을 처리합니다.