TIL

이건선·2023년 6월 9일

알아볼것

목록 보기
10/13

멀티스레딩 (Multithreading)과 멀티프로세싱 (Multiprocessing)의 차이점

멀티스레딩과 멀티프로세싱은 병렬 처리 방법을 통해 프로그램의 성능을 향상시키는 두 가지 기법입니다. 이 두 가지 방법의 주요 차이점은 프로세스와 스레드의 차이에 있습니다.

  1. 멀티프로세싱 (Multiprocessing)

멀티프로세싱은 여러 개의 독립된 프로세스를 동시에 실행하는 것을 말합니다. 각 프로세스는 독립된 메모리 공간과 자원을 가지며, 하나의 시스템에서 여러 개의 CPU 또는 여러 개의 코어를 사용하여 프로세스를 병렬로 실행합니다. 멀티프로세싱을 사용하면 CPU의 이용률을 높일 수 있습니다.

멀티프로세싱은 각 프로세스가 독립적인 메모리 공간을 가지기 때문에, 하나의 프로세스에서 발생한 오류가 다른 프로세스에 영향을 미치지 않습니다. 그러나 이 방식은 프로세스 간의 통신(IPC)을 위해 추가적인 메커니즘이 필요하며, 프로세스를 생성하고 제거하는 데 상대적으로 많은 오버헤드가 발생합니다.

  1. 멀티스레딩 (Multithreading)

멀티스레딩은 하나의 프로세스 내에서 여러 개의 스레드를 동시에 실행하는 것을 말합니다. 모든 스레드는 해당 프로세스의 메모리 공간과 자원을 공유하므로, 스레드 간의 통신은 비교적 쉽습니다. 이 방식은 프로세스의 생성과 제거에 비해 스레드의 생성과 제거가 더 적은 리소스를 사용합니다.

하지만 멀티스레딩은 스레드가 같은 메모리 공간을 공유하기 때문에, 하나의 스레드에서 발생한 오류가 전체 프로세스에 영향을 줄 수 있습니다. 또한 공유 자원에 대한 동기화 문제를 주의해야 합니다.

한 줄 요약 : 멀티프로세싱과 멀티스레딩 모두 병렬 처리를 위한 기법입니다.

profile
멋지게 기록하자

0개의 댓글