plzy의 개발 블로그

[CS 기초] Thread, Process의 차이점이 무엇일까? 본문

네트워크

[CS 기초] Thread, Process의 차이점이 무엇일까?

plzyhappy 2022. 4. 7. 20:51

흔히 면접 질문중 기본적으로 나오는게 ThreadProcess의 차이점이 있다.

그 둘은 모든 개발자들이 한번 씩 들어보고, 사용해봤지만 정확히 알 기에는 어려움이 있어 정리해보고자 한다.

 

먼저 Thread 는 무엇일까?

프로그램 실행의 단위 이며, 하나의 프로세스안에 여러 쓰레드가 있을 수 있다.

 

그렇다면 프로세스는 무엇일까?
현재 컴퓨터에서 실행중인 프로그램의 인스턴스 라고 할 수 있다.

 

비유를 하나 해보자
프로세스는 반, 쓰레드는 학생 이라고 해보자.

반에서 학생들이 공부하고 있다. 이때 한 학생이 무언가 잘못되 공부를 못하게 된다면 나머지 학생들도 공부를 못하게 된다.

 

이를 해결하기 위해 비동기 처리를한다.

하나의 학생이 난동을 피워도, 나머지 학생들은 지장 잆게 공부 할 수 있다는거다.

 

3줄요약

  • 프로세스는 운영체제로부터 자원을 할당받는 작업의 단위
  • 스레드는 할당 받은 자원을 이용하는 실행의 단위, 프로세스안에 여러 개의 쓰레드가 있을 수 있다.
  • 어플리케이션 하나가 프로세스이고, 이 안의 처리가 스레드가 되는 것 이다.