멀티프로세스는 독립된 주소 공간을 가진 여러 프로세스로 작업을 나누고, 멀티스레드는 한 프로세스의 자원을 공유하는 여러 스레드로 작업을 나눕니다. 선택의 핵심은 장애 격리와 자원 공유의 필요성입니다.

구분멀티프로세스멀티스레드
메모리·통신주소 공간이 분리되며 IPC로 통신주소 공간을 공유하며 직접 데이터 교환
장점프로세스별 장애 격리와 독립 관리에 유리자원 공유가 쉽고 생성·통신 비용이 대체로 작음
단점생성·메모리·IPC 비용이 대체로 큼공유 데이터의 경쟁 상태와 동기화 비용 발생
장애 영향한 프로세스의 종료가 다른 프로세스를 직접 종료시키지는 않음치명적인 메모리 오류 등이 프로세스 전체에 영향을 줄 수 있음

작업 간 격리가 중요하면 멀티프로세스가, 같은 데이터를 자주 공유하면 멀티스레드가 적합합니다. 두 방식 모두 실행 환경이 지원하면 여러 CPU 코어에서 병렬 실행할 수 있습니다.

출처 및 참고자료