user
JVM은 OS의 core를 마음대로 할당받을 수 없다.
이와 같은 애플리케이션을 user thread라고 한다.
( 참고로, native thread가 커널을 이용한다. )
kernel support 없이 실행
kernel
core를 직접 제어를 한다 -> kernel 스레드
OS가 직접 관리를 한다.



POSIX Pthreads
Windows thread
Java thread(JVM)
(Excutor Framework)
concurrent + parallel한데, 이를 compiler와 library에 의존.
Thread Pools
여러개의 스레드를 풀에 저장해서 필요할 때마다 사용한다.
( 다하고 반납 )
Fork & Join
new Thread와 wait
OpenMP
컴파일러 지시어로 C/C++로 처리
코드 블록을 알아서 병렬로 처리