기술면접

멀티 프로세스 대신 멀티 스레드를 사용하는 이유는 무엇인가요?

yeeeon89 2024. 5. 8. 14:35

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

  • 멀티 프로세스 : 하나의 운영체제 안에서 여러 프로세스가 동시에 실행되는 것
  • 멀티 스레드  : 하나의 프로세스 안에서 여러 스레드를 사용하여 동시에 처리하는 것

멀티 스레드 장단점
 
장점

  • 공유하고 있는 메모리만큼의 메모리 자원을 아낄 수 있다.
  • 스레드 간 통신 비용이 적고 응답 시간이 빠르다. 

단점

  • 스레드 하나가 프로세스 내 자원을 망쳐버린다면 모든 프로세스가 종료될 수 있다.
  • 자원을 공유하기 때문에 동기화 문제가 발생할 수 있다. 

 
멀티 스레드를 사용하는 주된 이유는 자원의 효율적 사용과 실행 효율성 때문입니다. 멀티스레드는 하나의 프로세스 내에서 여러 작업을 병렬로 수행할 수 있게 해주며, 이때 스레드들은 프로세스의 메모리와 자원을 관리합니다. 이러한 공유 매커티즘은 멀티 프로세스 방식에 비해 메모리 사용을 줄이고, 자원의 할당 및 관리의 오버헤드를 감소시킵니다.
 
멀티 프로세스 방식에 비해, 멀티스레드 방식은 컨텍스트 스위칭의 비용이 낮습니다. 프로세스간 컨텍스트 스위칭은 상대적으로 비용이 많이 드는 작업이며, 시스템의 성능을 저하시킬 수 있습니다. 반면, 스레드 간 컨텍스트 스위칭은 더 가볍고 빠릅니다.  
 
즉, 멀티스레드는 메모리와 자원의 효율적 사용, 간단한 데이터 공유와 통신, 그리고 낮은 컨텍스트 스위칭 비용으로 인해 멀티 프로세스보다 선호될 수 있습니다. 그러나 동기화 같은 추가적인 고려 사항이 필요합니다.