Thread의 종류
- user thread
- Java는 VM이다. OS위에 VM에서 thread를 제공해주는것
- 이는 OS에 있는 CPU의 core를 넘나들 수 없다.
- Java thread 변화
- 기존 :
green thread
(user thread)
- 최신 :
native thread
(kernel thread)
- kernel thread
- 운영체제의 CPU를 사용. 운영체제가 직접 관리 해준다.
user thread : kernel thread 의 관계
- Many-to-One (N:1) → 기본적인 모델
- One-to-One (1:1)
- Many-to-Many (N:N)
Thread API
: thread를 생성하고 managing 하는 API
- POSIX Pthreads
- Linux/Unix 계열에서 사용
- 표준 (IEEE 1003.1c) : 실제로 behavior만 정의하고, 구현은 하지 않으나 OS에서 각각 구현되어있다.
- Windows thread
- Java thread
- 실제로 운영체제에 종속적인 thread를 사용
Implicit Threading
- concurrent & parallel한 어플리케이션은 multi thread + multi core 환경임
- 복잡한 환경에서 컴파일러가 이를 대신하게 하는 라이브러리가 있음
- java.concurrent.*
- OpenMP (complier)
- Thread pool
- Fork & Join
*fork : 쓰레드 생성
- OpenMP
- 컴파일러 지시어를 통해 C/C++에서 병렬처리를 할수 있게 지원
- parallel regions을 지정해주면, 해당 코드블럭을 병렬처리 해줌
- GCD(Grand Central Diapatch)
Reference
https://www.inflearn.com/course/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EA%B3%B5%EB%A3%A1%EC%B1%85-%EC%A0%84%EA%B3%B5%EA%B0%95%EC%9D%98/dashboard