개발일기/CS(면접)

멀티프로세스와 멀티쓰레드의 특징은?

w.llama 2024. 8. 5. 21:04
  • 멀티프로세스 특징
    • 독립된 메모리 공간
      - 각 프로세스는 독립적인 메모리 공간을 가지므로, 한 프로세스가 비정상적으로 종료되어도 다른 프로세스에 영향을 주지 않는다
    • 안정성
      - 프로세스 간의 독립성 덕분에 하나의 프로세스에 문제가 생겨도 다른 프로세스에 영향을 미치지 않아 안정성이 높다
    • 오버헤드
      - 프로세스 생성과 컨텍스트 스위칭에 많은 자원이 소모되므로, 오버헤드가 크다
    • 병렬성
      - 여러 cpu 코어를 활용하여 병렬 처리가 가능하므로, cpu자원을 최대한 활용할수 있다
  • 멀티 쓰레드 특징
    • 자원 공유
      - 같은 프로세스 내의 쓰레드들은 메모리와 자원을 공유하므로, 프로세스 간 통신보다 쓰레드 간 통신이 더 빠르고 효율적
    • 경량성
      - 쓰레드는 프로세스보다 가벼워서 생성과 컨텍스트 스위칭이 빠르고 오버헤드가 적다
    • 응답 시간
      - 웹 서버와 같은 환경에서 클라이언트 요청을 빠르게 처리할 수 있어 응답 시간이 짧아진다
    • 동기화 문제
      - 쓰레드 간 자원 공유로 인해 동기화 문제가 발생할 수 있으며, 이는 프로그래머의 주의가 필요 
  멀티 프로세스 멀티 쓰레드
안정성  각 프로세스가 독립적이여서 안정성이 높다 쓰레드간 자원공유로인해 동기화 문제로 안정성이 떨어질 수 있다.
성능 독립적인 메모리 공간을 가지므로 병렬 처리에 유리 오버헤드가 적고 응답시간이 짧다 
자원 사용 더 많은 자원을 소모 자원을 효율적으로 사용

'개발일기 > CS(면접)' 카테고리의 다른 글

OAuth 란?  (0) 2024.08.07
TDD와DDD란?  (0) 2024.08.06
프로세스와 쓰레드에 대해 설명하고 차이점을 설명해라  (0) 2024.08.02
CI/CD란?  (0) 2024.08.01
클래스형과 함수형의 차이  (0) 2024.07.31