스레드

운영체제

스레드란

스레드는 실행 단위 이다. 프로세스를 구성하는 실행의 흐름단위. 하나의 프로세스는 여러 개의 스레드를 가질 수 있다.

스레드는 프로세스 내에서 각기 다른 스레드ID, 프로그램 카운터 값을 비롯한 레지스터값, 스택 으로 구성된다.

프로세스의 스레드들은 실행에 필요한 최소한의 정보(각기 다른 정보) 만 유지한 채 프로세스 자원을 공유하며 실행된다.

멀티 프로세스 와 멀티 스레드

멀티 프로세스는 기본적으로 자원을 공유하지 않지만 스레드 끼리는 같은 프로세스 내의 자원을 공유한다.

따라서 멀티스레드가 더 메모리를 효율적으로 사용할 수 있다. 그리고 자원을 공유하기 떄문에 협력과 통신에 유리하다.

하지만 멀티스레드의 경우 자원을 공유하기 때문에 하나의 스레드에 문제가 생기면 프로세스 전체에 문제가 생길 수 있다.