스레드 모델은 누가 스케줄링을 맡는지로 고른다
사용자 수준 스레드는 빠르게 전환되지만 blocking call에 약하고, 커널 스레드는 병렬성과 차단 처리가 강한 대신 전환 비용이 든다.
user level
라이브러리 스케줄
전환 빠름
kernel level
커널 스케줄
코어 병렬 사용
hybrid
둘을 매핑
복잡도 증가
선택
blocking 여부
병렬성과 비용 균형
모델
강한 점
주의점
user level
빠른 전환
한 스레드 차단이 전체 차단
kernel level
멀티코어 병렬성
커널 전환 비용
hybrid
유연한 매핑
구현과 디버깅 복잡
green thread
대량 동시성
런타임 지원 필요