[운영체제] 스레드(Thread)
이 글은 패스트캠퍼스의 현실 세상의 컴퓨터공학 지식 with 30가지 실무 시나리오 초격차 패키지 Online.를 보고 공부한 내용을 정리한 글입니다. 이해한 내용을 바탕으로 작성했기에 틀린 내용이 있을 수 있습니다.
스레드
- 프로세스를 구성하는
실행 흐름의 단위 - 하나의 프로세스 내부에 여러개의 스레드가 포함될 수 있으며 최소 한 개의 스레드가 포함된다.
- 스레드마다 각기 다른 스레드 ID, 프로그램 카운터, 레지스터, 스택 등을 가지고 공유함
멀티 프로세스 vs 멀티 스레드
멀티 프로세스와 멀티 스레드는 얼핏 보면 비슷하게 동작한다. 그렇다면 이 두가지는 어떤 차이점이 있을까?
가장 주된 차이점은 바로 자원 공유 여부이다.
- 프로세스 간에는 기본적으로 자원을 공유하지 않는다.
- 하지만 스레드간에는
프로세스의 자원을 공유한다.
다음 사진처럼 멀티 프로세스는 기본적으로 공유하지 않는다.
하지만 스레드는 프로세스 내에 다른 스레드에게 자원을 공유한다.
스레드의 이런 자원 공유는 분명히 효율적이지만 공유하는 자원에 문제가 생길 시 자원을 공유받는 모든 스레드에 문제가 발생하는 단점이 있다.
정리
- 스레드는 프로세스 내의 존재하는 실행 흐름이다.
- 멀티 스레드는 프로세스 내의 자원을 공유한다.
댓글남기기