멀티프로세싱은 독립적인 여러 프로세스를 생성하여 작업을 수행하는 방식으로
각 프로세스는 메모리를 따로 가지고 있어 안정성이 높지만, IPC가 필요하고 Context Switching 비용이 큽니다
반면에, 멀티스레딩은 하나의 프로세스 내에서 여러 개의 스레드가 실행되는 방식입니다. 스레드들은 같은 메모리 공간 (Code, Data, Stack, Heap)을 공유하므로 Context Switching 비용이 적고 자원 활용이 효율적입니다. 하지만, 동기화 문제와 하나의 스레드 오류가 전체 프로세스를 종료시킬 위험이 있습니다.
Nginx 는 멀티프로세싱을 활용해 요청을 분배하며, Spring Boot 웹 애플리케이션은 멀티스레딩을 사용해 동시 요청을 처리합니다. 따라서, 높은 안정성이 필요한 경우 멀티 프로세싱을 빠른 응답과 효율적인 자원 활용이 중요한 경우 멀티스레딩을 선택하는 것이 일반적입니다.
[운영체제] 운영체제에서 페이지 교체 알고리즘(Page Replacement Algorithm) 중 LRU (Least Recently Used (0) | 2025.03.20 |
---|---|
멀티스레딩 vs 비동기 (0) | 2024.12.26 |
[운영체제] 프로세스 생성 (0) | 2024.11.05 |
[운영체제] Lock을 이용한 동시성 제어 (0) | 2024.10.15 |
[운영체제] 8. 스레드 (0) | 2021.03.23 |