프로세스를 구성하는 실행의 단위
하나의 프로세스는 여러 개의 스레드를 가질 수 있다.
스레드를 통해 하나의 프로세스가 한번에 여러가지 일을 처리할 수 있다.
스레드는 프로세스의 자원(코드, 데이터, 힙 영역)을 공유한다.
멀티 프로세스: 여러 프로세스를 동시에 실행하는 것
멀티 스레드: 여러 스레드로 프로세스를 동시에 실행하는 것
결과는 같지만…
왼쪽은 프로세스는 자원을 공유하지 않으므로, 메모리 주소를 제외하고 모든 것이 동일한 프로세스가 3번 적재
→ 낭비가 될 수도
오른쪽의 스레드끼리는 같은 프로세스 내의 자원을 공유
이러한 특성을 활용하면, 스레드는 프로세스의 자원을 공유하여 협력하고 통신할 때 훨씬 효율적. 낭비 없음.
하지만, 멀티스레드 환경에서는 자원을 공유하기 때문에, 하나의 스레드에서 문제가 생기면 프로세스에 문제가 생길 수도.
멀티프로세스 환경에서는 독립적으로 실행되기 때문에 이와 같은 문제는 발생하지 않음.
혼자 공부하는 컴퓨터구조+운영체제
공룡책