쓰레드 개념

  • 쓰레드 => CPU에 작업 요청을 하는 실행 단위
    • 운영체제 입장에서 실행 단위는 프로세스
    • CPU 입장에서 실행 단위는 쓰레드
  • 예시) “안심 스테이크” 만드는 과정에서 “고기 굽기, 채소 굽기, 소스 뿌리기”와 같은 여러개의 조리과정이 포함되어 있다.
    • 안심 스테이크 → 프로세스
    • 고기굽기, 채소 굽기, 소스 뿌리기 → 쓰레드
  • 멀티태스크
    • 예시) 워드프로세서와 프린터의 관계 → 독립적
    • 워드프로세서가 비정상적으로 종료되도 프린터는 정상적으로 동작
    • 서로 독립적인 프로세스끼리 데이터를 주고받을떄는 프로세스 간 통신(Inter Process Communication, IPC)을 이용
  • 멀티쓰레드
    • 예시) 워드프로세서 안의 문서 편집, 입출력, 맞춤법 검사 등 쓰레드들이 동시에 작업하는 것

멀티쓰레드 장점

  • 자원의 중복 사용 X (= 자원 공유)
  • 작업의 효율 증가

멀티쓰레드 단점

  • 한 쓰레드가 문제 생기면 전체 프로세스에 영향이 생김(because, 모든 쓰레드가 자원을 공유하고 있기 떄문에)