ABOUT
home
무료 콘텐츠
home
4️⃣

Multi process와 Multi thread를 비교 설명해 주세요.

[핵심 답변]
multi thread는 multi process보다 적은 메모리 공간을 차지하고 Context Switching이 빠릅니다.
multi process는 multi thread보다 많은 메모리공간과 CPU 시간을 차지합니다.
multi thread는 동기화 문제와 하나의 thread 장애로 전체 thread가 종료될 위험이 있습니다.
multi process는 하나의 process가 죽더라도 다른 process에 영향을 주지 않아 안정성이 높습니다.
[면접  TIP]
두 방법은 동시에 여러 작업을 수행한다는 측면에서 유사한 면이 있습니다. 적용할 시스템에 따라 두 방법의 장단점을 고려하여 적합한 방식을 선택해야 합니다. 메모리 구분이 필 요할 때는 multi process가 유리합니다. 반면에 Context switching이 자주 일어고 데이터 공유가 빈번한 경우, 그리고 자원을 효율적으로 사용해야 되는 경우에는 multi thread를 사용하는 것이 유리합니다. 비교하여 설명하라는 면접 질문이 나오면 위에 적어드린 내용 안에서 설명을 하시면 됩니다.

Multi process & Multi thread

multi process대신 multi thread로 구현할 경우, 메모리 공간과 시스템 자원 소모가 줄어들게 됩니다. 하지만 multi thread를 사용할 때는 thread간 자원을 공유하기 때문에 동기화문제가 발생할 수 있기 때문에 이를 고려한 프로그램 설계가 필요합니다.
또한 process간의 통신(IPC)보다 thread간의 통신 비용이 적기 때문에 통신으로 인한 오버헤드가 적습니다.
메모리 사용 / CPU 시간
Context switching
안정성
multi process
많은 메모리 공간 / CPU 시간 차지
느림
높음
multi thread
적은 메모리 공간 / CPU 시간 차지
빠름
낮음
 [참고자료] chrome과 firefox의 차이(multi process vs multi thread)
[꼬꼬무 문답]
Q. multi thread가 multi process보다 좋은 점은 무엇인가요?
Q. multi thread가 multi process보다 안좋은 점은 무엇인가요?