카테고리 없음

[OS] 멀티 스레드의 장단점

Dev_Green 2023. 8. 8. 23:16

멀티 스레드란?

  • 하나의 응용 프로그램을 여러 개의 스레드로 구성하고, 각 스레드가 하나의 작업을 처리하도록 하는 구조

 

멀티 스레드의 장점

  • 멀티 프로세스보다 적은 메모리 공간을 차지하고 context switch가 빠르다.
    • context switch: 현재까지의 작업 상태나 다음 작업에 필요한 각종 데이터를 저장하고 읽어오는 작업
    • context switch에 걸리는 시간이 클수록 멀티스레딩의 효율은 떨어진다.
  • 프로세스 내에서 자원을 공유하여 자원 중복을 최소화
    • 전역변수 공간이나 Heap 영역을 통해 데이터를 주고 받을 수 있다.
    • Stack 영역을 제외한 모든 영역이 메모리를 공유한다.

 

멀티 스레드의 단점

  • 스레드 간 자원을 공유하기 때문에, 하나의 스레드만 종료되어도 전체 스레드가 영향을 받을 수 있다.
  • 동기화 문제
    • 여러 스레드가 공유하는 자원에 동시에 접근하는 경우, 프로세스와는 달리 스레드는 데이터와 힙 영역을 공유하기 때문에 다른 스레드가 사용 중인 데이터에 접근하여 버그가 발생할 수 있다.