멀티 프로세스와 멀티 스레드
- 멀티 프로세스 : 하나의 운영체제 안에서 여러 프로세스가 동시에 실행되는 것
- 멀티 스레드 : 하나의 프로세스 안에서 여러 스레드를 사용하여 동시에 처리하는 것
멀티 스레드 장단점
장점
- 공유하고 있는 메모리만큼의 메모리 자원을 아낄 수 있다.
- 스레드 간 통신 비용이 적고 응답 시간이 빠르다.
단점
- 스레드 하나가 프로세스 내 자원을 망쳐버린다면 모든 프로세스가 종료될 수 있다.
- 자원을 공유하기 때문에 동기화 문제가 발생할 수 있다.
멀티 스레드를 사용하는 주된 이유는 자원의 효율적 사용과 실행 효율성 때문입니다. 멀티스레드는 하나의 프로세스 내에서 여러 작업을 병렬로 수행할 수 있게 해주며, 이때 스레드들은 프로세스의 메모리와 자원을 관리합니다. 이러한 공유 매커티즘은 멀티 프로세스 방식에 비해 메모리 사용을 줄이고, 자원의 할당 및 관리의 오버헤드를 감소시킵니다.
멀티 프로세스 방식에 비해, 멀티스레드 방식은 컨텍스트 스위칭의 비용이 낮습니다. 프로세스간 컨텍스트 스위칭은 상대적으로 비용이 많이 드는 작업이며, 시스템의 성능을 저하시킬 수 있습니다. 반면, 스레드 간 컨텍스트 스위칭은 더 가볍고 빠릅니다.
즉, 멀티스레드는 메모리와 자원의 효율적 사용, 간단한 데이터 공유와 통신, 그리고 낮은 컨텍스트 스위칭 비용으로 인해 멀티 프로세스보다 선호될 수 있습니다. 그러나 동기화 같은 추가적인 고려 사항이 필요합니다.
'기술면접' 카테고리의 다른 글
추상 클래스와 인터페이스의 차이점은 무엇이며, 각각을 사용하는 적절한 시나리오에 대해 설명해주세요. (0) | 2024.05.12 |
---|---|
멀티스레드 프로그래밍에서 동기화(Synchronization)가 왜 필요한가요? 예를 들어 설명해주세요. (0) | 2024.05.08 |
자바에서 가비지 컬렉션(GC)의 원리를 설명해주세요. (0) | 2024.05.05 |