프로세스란?

  • 실행중인 프로그램
  • 주기억장치, CPU의 실행단위
  • 동적인 프로그램
  • 리소스와 스레드의 구성
  • 모든 프로세스는 하나 이상의 스레드를 가짐

스레드란?

  • 경량화된 프로세스
  • 프로세스 내에서 실제 작업을 수행함
  • 한 프로세스 내에서 동작되는 여러 실행의 흐름

스레드 장점

  • 시스템의 자원 소모가 줄어든다. 프로그램의 응답 시간이 단축된다
  • 프로세스 간 통신 방법에 비해 스레드간의 통신 방법이 훨씬 간단하다

스레드의 단점

  • 프로세스 밖에서 스레드 각각을 제어할 수 없다.
  • 여러 개의 스레드를 이용하는 프로그램을 작성하는 경우에는 주의 깊게 설계 해야 한다.
  • 미묘한 시간차나 잘못된 변수를 공유함으로써 오류가 발생할 수 있다.
  • 프로그램의 디버깅이 어렵다. 단일 프로세서 시스템에서는 효과를 기대하기 어렵다.

프로세스와 스레드의 차이점

메모리 사용에 대한 차이

프로세스는 독립적으로 실행됩니다. 자신만의 고유 메모리를 할당 받아서 사용합니다.

스레드는 한 프로세스 내의 여러 흐름으로서 프로세스 내 주소 공간이나 자원을 공유해서 실행합니다.

이러한 특성으로 인해 프로세스 간의 전환보다는 스레드 간의 전환 속도가 더 빠릅니다.