본문 바로가기
기술면접/백엔드종합

멀티쓰레드와 멀티프로세스의 차이점

by 노믹 2023. 4. 24.

멀티쓰레드와 멀티프로세스는 여러 작업을 동시에 처리할 수 있는 기술이다. 그러나 두 기술은 다음과 같은 차이점이 있다.

  • 자원 공유 : 멀티쓰레드는 하나의 프로세스 내에서 여러 쓰레드가 자원을 공유하여 사용한다. 반면 멀티프로세스는 서로 다른 프로세스끼리 자원을 공유할 수 없다.
  • 컨텍스트 스위칭 : 멀티쓰레드는 쓰레드 간의 전환 시에 컨텍스트 스위칭이 일어나며, 이는 비교적 빠른 속도로 일어난다. 반면 멀티프로세스는 프로세스 간의 전환 시에도 컨텍스트 위치잉이 일어나며, 이는 상대적으로 느린 속도로 일어난다.
  • 메모리 사용 : 멀티쓰레드는 하나의 프로세스 내에서 여러 쓰레드가 메모리를 공유하여 사용하기 때문에, 메모리 사용량이 비교적 적다. 반면 멀티프로세스는 각각의 프로세스가 독립적으로 사용하기 때문에, 메모리 사용량이 많을 수 있다.
  • 프로그래밍 복잡도 : 멀티쓰레드는 하나의 프로세스 내에서 쓰레드를 생성하고 관리하기 때문에, 프로그래밍이 비교적 간단하다. 반면 멀티프로세스는 서로 다른 프로세스끼리 자원을 공유하지 않으므로, 프로그래밍이 비교적 복잡하다.

멀티쓰레드 서버의 장단점

장점 :

  • 멀티쓰레드는 공유 메모리에 접근하므로, 쓰레드 간 데이터 공유가 빠르고 간단하다.
  • 쓰레드를 생성하고 삭제하는 비용이 적다. 멀티프로세스는 프로세스를 생성하고 삭제하는 데 더 많은 시간이 필요하다.
  • CPU를 공유하므로, 시스템 자원의 효율적인 사용이 가능하다.

단점 :

  • 공유 메모리에 접근하는 동안에는 뮤텍스 등의 동기화 기법이 필요하다. 이ㅡㄹ 제대로 구현하지 않으면 데이터 불일치 등의 문제가 발생할 수 있다.
  • 하나의 쓰레드에서 발생한 오류는 전체 프로세스를 종료시킬 수 있다.
  • 쓰레드 간의 경쟁 조건 등, 복잡한 동시성 문제가 발생할 수 있다.

멀티프로세스 서버의 장단점

장점 :

  • 각 프로세스는 독립적이므로, 하나의 프로세스가 오류를 일으켜도 다른 프로세스에는 영향을 미치지 않는다.
  • 프로세스 간 통신 방법으로 인터프로세스 통신(IPC) 등을 사용하여 데이터 공유가 가능하다.

단점 :

  • 프로세스를 생성하고 삭제하는 데 더 많은 시간과 자원이 필요하다.
  • IPC 방법은 쓰레드 간의 공유 메모리보다 복잡하다.
  • CPU를 공유하지 않기 때문에, 시스템 자원의 효율적인 사용이 어렵다.

'기술면접 > 백엔드종합' 카테고리의 다른 글

인증과 권한 부여의 차이점  (0) 2023.04.24
쿠키와 세션의 차이  (0) 2023.04.24
RESTful API란?  (0) 2023.04.24
동기화에 대해서  (0) 2023.04.24
프로세스와 스레드의 차이  (0) 2023.04.14