본문 바로가기
CS

[혼공컴운] 스레드

by 데브겸 2023. 4. 11.

스레드

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

여러 개의 스레드는 하나의 프로세스 자원을 공유하면서, 각자의 스레드 ID와 PC값, 스택을 가짐

 

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

  • 멀티 프로세스
    • 동일한 프로세스를 동시에 실행하면 코드 영역, 데이터 영역, 힙 영역 등을 비롯한 모든 자원이 복제 되어 메모리에 적재
    • 각 프로세스는 독립적으로 운영되기 때문에 하나의 프로세스에 문제가 있다고 하더라도 다른 프로세스에는 큰 영향이 없을 수 있음
      • 프로세스 간 통신(IPC)도 소켓이나 파이프를 통해서 충분히 가능함. 프로세스끼리 공유하는 데이터를 저장하는 공유 메모리(shared memory) 영역을 이용해서 통신하는 방법도 존재
  • 멀티 스레드
    • 코드, 데이터, 힙, 파일 등의 자원을 공유하면서 명령어를 실행
    • 협력과 통신에서 유리하지만, 하나에 문제가 생기면 다른 스레드에서도 영향을 받음