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