스레드(Thread)
어플리케이션의 실행에 있어서 가장 기본적인 단위. 실행중인 어플리케이션은 최소 하나의 스레드로 구성된다.
각 스레드마다 별도의 스택이 있으며 각 스레드는 같은 어플리케이션에 있는 다른 스레드와 독립적으로 돌아간다.
스레드 끼리는 파일 핸들이나 메모리 같은 자원을 공유한다.
출처
네이티브 스레드(커널 레벨 스레트)
운영체제에서 생성하고 관리하는 스레드
녹색 스레드
운영체제 위의 소프트웨어 계층에서 구현된 스레드.
멀티코어를 활용할 수 없으며 동기 입출력을 구현하기 어렵다.
멀티코어 시스템이 주류를 이루게 되면서 녹색 스레드를 쓰지 않는 쪽으로 변함
선점형 스레딩(preemtive threading)
운영체제에서 아무때나 스레드 실행을 멈추고 다른 스레드를 실행시킬 수 있다. 때문에 운영체제 에서는 각 스레드에 조금씩 시간을 나눠주면서 여러 스레드를 돌아가며 실행시킨다.
컨텍스트 스위칭(context switching)
다른 스레드가 시작될 수 있도록 한스레드를 멈추는 것.
시스템 스레드
어플리케이션의 첫번째 스레드(메인스레드)
사용자 스레드
메인 스레드에서 할 수 없는, 혹은 하면 안되는 작업을 해야할 때 생성되는 스레드
이벤트 스레드
사용자 인터페이스를 화면에 표시하는 어플리케이션의 메인 스레드
이벤트가 일어날 때 까지 기다렸다가 그 이벤트를 어플리 케이션에서 처리 할 수있도록 전달하는 역할을 한다.
이벤트 스레드에서 이벤트를 제대로 처리하지 못하면 어플리케이션이 느려진다.
네트워크 접근 같은 작업은 스레드를 따로 만들어 처리해야 한다.
'CS > etc' 카테고리의 다른 글
[CS] REST? REST API? RESTful? (0) | 2021.03.10 |
---|