2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

[백엔드] 기술 면접 Top30 - #24 멀티 프로세스와 멀티 스레드

2023. 10. 4. 12:20ㆍ[백엔드] 기술면접
반응형

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

 

 

멀티 프로세스 ( Mutil - Process )

독립성

  • 멀티프로세스는 각각의 프로세스가 독립적인 메모리 공간을 가지고 실행된다.
    따라서 한 프로세스에서의 오류가 다른 프로세스에 영향을 미치지 않는다.

안정성

  • 하나의 프로세스의 충돌 또는 오류로 인해 시스템 전체가 영향을 받지 않는다.
  • 한 프로세스가 비정상 종료되더라도 다른 프로세스는 계속 실행된다.

병렬성

  • 멀티프로세스는 여러 CPU 코어에서 병렬로 실행될 수 있으므로 병렬 처리를 구현하기 쉽다.
  • 각 프로세스는 독립적으로 작업을 수행하며, 병렬 작업을 수행하기 위해 프로세스 간 통신(IPC)이 필요하다.

자원 소모

  • 멀티프로세스는 각각의 프로세스가 자체 메모리 공간을 사용하므로 더 많은 메모리와 시스템 리소스를 필요로 한다.

멀티 스레드 ( Multi - Thread )

 

공유 메모리

  • 멀티쓰레드는 하나의 프로세스 내에서 실행되며, 이들 쓰레드는 같은 메모리 공간을 공유한다.
    따라서 데이터 공유 및 통신이 쉽고 빠르다.

경량성

  • 쓰레드는 프로세스보다 더 가벼우며, 쓰레드 간 전환(스위칭)이 빠르다.
    이로 인해 쓰레드 간 작업 분배 및 동기화가 더 효율적으로 이루어진다.

병렬성

  • 멀티쓰레드는 동일한 프로세스 내에서 병렬 실행되므로 프로세스 간 통신이 필요하지 않습니다.
    하지만 여러 쓰레드 간의 동시성 관리 및 동기화 문제가 발생할 수 있습니다. 

안정성

  • 한 쓰레드의 오류가 다른 쓰레드에 영향을 미칠 수 있으므로 쓰레드 간의 조심스러운 동기화가 필요하다.
    따라서 프로그래밍이 더 복잡할 수 있다.

요약

멀티프로세스는 독립적인 메모리 공간을 가지며 안정성이 높고 자원 소모가 크지만, 병렬성이 용이하다.
멀티쓰레드는 같은 메모리 공간을 공유하고 경량성을 가지며 자원 효율성이 높지만, 동시성 관리가 복잡하고 오류가 전파될 수 있다. 선택은 프로젝트 요구사항과 상황에 따라 결정되어야 한다.
반응형