자바 초창기 버전, 복수의 유저 스레드가 하나의 os 스레드와 연결된 구조

장점
1. 컨텍스트 스위칭이 빠르다
유저 스레드 간 컨텍스트 스위칭 과정에 커널 개입하지 않음
단점
1. 멀티코어의 이점을 누릴 수 없다.
os 레벨에서 단 하나의 작업만 실행될 수 있기 때문
자바8과 자바 11 등 대부분의 서비스에서 사용 중인 자바 버전들, 각 유저 스레드마다 독립된 os 스레드 하나와 연결되는 구조

장점
1. 멀티코어의 이점을 볼 수 있음
유저 스레드의 개수만큼 os 스레드가 존재해 서로 다른 유저 스레드는 반드시 독립적인 os스레드에서 실행되기 때문
단점
1. os레벨에서 데이터 경함이 발생할 가능성이 높음
하나의 프로세스 내에서 복수의 os 스레드가 메모리, 파일 등 동일한 자원을 공유하기 때문
-> 스레드풀을 만들어서 제한된 개수의 os 스레드를 최대한 효율적으로 사용

위의 모델들의 장점을 합친 이상적인 멀티스레딩 모델
장점
1. 멀티코어의 이점 누림
2. 특정 os 스레드가 블록되어도 나머지 os 스레드들은 그대로 활용할 수 있음.
3. 가벼운 무게의 유저 스레드를 만들어도 프로세스에 무리가지 않음. 컨텍스트 스위칭은 유저 레벨에서 발생해 굉장히 빠름
단점
1. 구현하기 힘듦.
참고
https://bugoverdose.github.io/computer-science/multi-threading-models/