본문 바로가기


IT기타

프로세스(Process)와 쓰레드(Thread)의 차이

프로세스(Process)와 쓰레드(Thread)

프로세스(Process)

프로세스는 컴퓨터에 존재하는 프로그램이 실제 실행되는 것을 의미합니다.

프로그램의 인스턴스라고 할 수 있습니다. 여러개의 쓰레드를 포함할 수 있고 단 프로세스간의 통신은 IPC로 제어됩니다.


쓰레드(Thread)

쓰레드는 CPU 사용의 기본단위 입니다. 한코어에서 하나의 쓰레드가 동작합니다.

쓰레드는 프로세스안의 프로세스 같은 개념입니다. 일반적으로 하나의 프로세스안에 여러개의 쓰레드가 실행되고 이들이 공유하는 내용은 다음의 것들입니다.

  • Code
  • Data
  • Resource
데이터를 공유하고 이 영역을 임계구역(Critical Section) 이라고 합니다. 이부분의 관리가 쟁점이 되고 멀티쓰레드 환경에서 제일 신경써야하는 부분입니다.