본문 바로가기
CS

쓰레드와 프로세스의 차이

by 남생이야 2024. 6. 5.

 

쓰레드 (Thread)

  • 쓰레드는 병렬 프로그래밍을 위한 기본 단위이며 프로세스 내에서 동작하는 작은 단위이다. 
  • 쓰레드는 함수 단위로 동작한다. 
  • 동일한 프로세스 내에서 여러 쓰레드가 동작할 수 있다. 
  • 동일한 작업을 병렬로 처리할 때 사용한다. 
  • 쓰레드는 동일한 프로세스 내에서 서로 다른 쓰레드 간의 메모리 공간을 공유하기 때문에 코드, 데이터, 힙 메모리 영역으로 데이터를 공유할 수 있다. 
  • 상대적으로 적은 오버헤드로 생성 및 관리를 할 수 있다. 
  • 컨텍스트 스위칭이 프로세스보다 가볍다.

프로세스 (Process)

  • 프로세스는 운영체제로부터 할당 받은 작업의 단위이다. 
  • 프로세스만의 고유한 메모리 영역을 가진다. 
  • 프로그램의 기본 단위로 하나의 프로그램은 여러 프로세스를 통해 실행될 수 있다.
  • 프로세스는 독립적인 메모리 영역을 갖고 있기 때문에 서로 다른 프로세스간의 자원을 공유할 수 없다. 대신 프로세스간 통신을 이용해야만 데이터를 주고 받을 수 있다. 

'CS' 카테고리의 다른 글

메모리 인터리빙(Memory Interleaving)  (0) 2024.06.11
단일 책임 원칙(SRP)  (0) 2024.06.08
추상화, 가상화  (0) 2024.06.05
제네릭  (0) 2024.05.26
GUID  (0) 2024.05.24