티스토리 뷰

멀티 프로세스와 멀티 스레드는 모두 한 어플리케이션에 대한 처리방식이다.

 


멀티 프로세스

운영체제에서 하나의 응용 프로그램에 대해 동시에 여러 개의 프로세스를 실행할 수 있게 하는 기술을 말한다.

 

  • 보통 하나의 프로그램 실행에 대해 하나의 프로세스가 메모리에 생성되지만, 부가적인 기능을 위해 여러개의 프로세스르 생성하는 것이다.

 

✖️ 멀티 프로세스는 하나의 프로그램에서 여러 개의 프로세스를 실행하는 것을 의미하고, 멀티 프로세서는 여러 개의 CPU 코어가 하나의 시스템에서 동시에 실행되는 것을 의미한다.

 


멀티 스레드

하나의 프로세스 안에 안에 여러개의 스레드가 있는 것을 말한다.

 

  • 하나의 프로그램에서 두가지 이상의 동작을 동시에 처리하도록 하는 행위가 가능해진다.

 


멀티 프로세스 vs 멀티 스레드

  • multi thread는 multi process보다 적은 메모리 공간을 차지하고 Context Switching이 빠르다.
  • multi process는 multi thread보다 많은 메모리공간과 CPU 시간을 차지한다.
  • multi thread는 동기화 문제와 하나의 thread 장애로 전체 thread가 종료될 위험이 있다.
  • multi process는 하나의 process가 죽더라도 다른 process에 영향을 주지 않아 안정성이 높다.

메모리 구분이 필요할 때는

multi process가 유리하고

Context switching이 자주 일어나고 데이터 공유가 빈번한 경우, 그리고 자원을 효율적으로 사용해야 하는 경우에는

multi thread를 사용하는 것이 유리하다.

 

  메모리 사용 / CPU 시간 Context switching 안정성
multi process 많은 메모리 공간 / CPU 시간 차지 느림 높음
multi thread  적은 메모리 공간 / CPU 시간 차지 빠름 낮음