본문 바로가기
컴퓨터공학기초 개념/운영체제

25. 스레드의 장단점

by devraphy 2021. 5. 4.

1. 스레드의 장점 

a) 사용자에 대한 응답성 향상

  • 하나의 프로세스 안에서 하나 이상의 작업(멀티 테스킹, 멀티 프로세싱)을 가능하기 때문

 

b) 자원 공유의 효율성

  • 프로세스간의 자원 또는 데이터 공유를 위한 IPC와 같은 번거로운 작업이 필요없음 
  • 프로세스 내부에서 스레드 간의 소통이 가능하기 때문
  • 번거로운 작업이 필요 없기에 그만큼 자원을 적게 사용한다는 의미

 

c) 작업 분리를 통한 코드의 간결화

  • 각 스레드의 작업에 맞게 코드를 작성하기 때문
  • 하지만, 개발자가 작성하기 나름.
  • 즉, 개발자의 실력에 따라 편차가 크다.

 


2. 스레드의 단점 

a) 여러 스레드 중 하나에만 문제가 생겨도, 전체 프로세스가 영향을 받음

  • 스레드는 하나의 프로세스 안에 존재함
  • 여러 스레드 중 하나라도 문제가 생기면 프로세스 자체에 문제가 발생한 것과 동일

 

b) 성능 저하

  • 다수의 스레드 사용으로 인해, Context Switching이 너무 많이 발생하여 성능이 저하된다(과부하)

3. 프로세스와 스레드 비교분석 

프로세스 스레드
독립적으로 존재 프로세스의 서브셋(하부 요소)으로 존재
독립적인 자원(=데이터) 보유 프로세스의 자원(=데이터)을 사용/공유
독립적인 주소영역(가상, 물리 주소) 스레드는 주소영역을 공유
IPC기법을 통한 통신 특별한 과정없이 소통가능

댓글