전환이 빠르지만 하나가 블로킹 시스템 콜에 걸리면 같은 커널 스레드의 작업이 묶일 수 있습니다.
스레딩 모델 선택
사용자 수준 스레드, 커널 수준 스레드, 가상 스레드와 고루틴은 생성 비용과 블로킹 처리 방식이 다릅니다.
ULT런타임이 전환
KLT커널이 스케줄
M:N많은 작업을 적은 스레드로
runtime고루틴과 가상 스레드
OS가 스케줄링하므로 멀티코어 병렬 실행과 블로킹 분리가 명확합니다.
Many-to-One은 저렴, One-to-One은 병렬성이 강합니다.
Go/Java 가상 스레드는 동시 작업을 런타임이 흡수합니다.
계산 작업은 실제 CPU 코어를 점유하므로 커널 스레드·프로세스 수가 코어를 어떻게 쓰는지 봅니다.
대기 시간이 많다면 async, 고루틴, 가상 스레드처럼 적은 OS 스레드로 많은 요청을 처리합니다.