스레드
컴퓨터 과학에서 어떠한 작업을 처리하는 흐름의 단위를 말한다.
- 종류
- 하드웨어 스레드 - 하드웨어 레벨에서 CPU 코어의 작업을 나눠 놓은 단위이다. 코어의 한 하드웨어 스레드가 메모리에 접근하는 시간에 다른 스레드가 CPU 연산을 이용하는 병행처리를 가능케 한다.
- OS 스레드 - 일반적인 의미의 스레드로, CPU에서 실제로 실행(CPU 스케줄링)되는 단위이다. OS 커널이 시스템콜을 통해 스레드를 생성하고, 컨텍스트 스위칭을 한다.
- 네이티브 스레드, 커널 스레드라 불리기도 한다.
- 유저 스레드 - 유저가 관리하는 단위의 스레드로 프로그래밍 레벨에서 추상화한 OS 스레드를 의미한다. 실제로 실행하기 위해서 OS 스레드와 연결해야하며 연결 관계에 따라 일대일, 일대다, 다대다로 나뉜다.
- 일대일 스레드 - OS 스레드와 일대일 매핑된 유저 스레드는 OS 스레드와 같이 동작한다. 스레드 관리와 스케줄링을 OS 에 위임하고, 멀티코어 활용이 용이하다.
- 일대다/ 다대다 스레드 - 유저 스레드가 하나의 OS 스레드와 연결되므로, 유저 스레드간 스위칭이 빠르다.
- 그린 스레드 - OS와는 독립적으로 유저 레벨에서 관리되는 스레드(엄밀한 의미의 유저 스레드)를 의미하며 OS 스레드와 일대다/다대다 관계이다.
refs
- 스레드 종류가 참 많죠? 하드웨어 스레드, OS 스레드, 네이티브 스레드, 커널 스레드, 유저 스레드, 그린 스레드까지 한번에 정리해서 알려드립니다!! - YouTube