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

Moon Blue의 IT 로그 📝·2023년 3월 30일
0
post-thumbnail

멀티 프로세스멀티 스레드는 컴퓨터 프로그램이 동시에 여러 작업을 수행하는 방식을 나타냅니다.

🔖 멀티 프로세스

멀티 프로세스는 여러 개의 독립적인 프로세스를 사용하여 동시에 작업을 처리하는 방식입니다. 각 프로세스는 독립된 메모리 공간과 자원을 사용하며, 서로 다른 프로세스와는 별도로 실행됩니다. 이로 인해 프로세스 간의 영향을 최소화하고 안정성을 높일 수 있습니다. 단, 프로세스 생성 및 종료에 높은 오버헤드가 발생하고, 프로세스 간 통신을 위해 별도의 메커니즘이 필요합니다.

🔖 멀티 스레드

멀티 스레드는 하나의 프로세스 내에서 여러 개의 스레드를 사용하여 동시에 작업을 처리하는 방식입니다. 스레드는 프로세스 내에서 실행되는 독립적인 실행 흐름으로, 같은 프로세스의 스레드끼리는 메모리와 자원을 공유합니다. 이로 인해 메모리 사용량이 줄어들고 스레드 간의 통신이 빠릅니다. 단, 스레드 간의 동기화 문제와 하나의 스레드에서 발생한 오류가 전체 프로세스에 영향을 줄 수 있는 단점이 있습니다.

📊 비교

항목멀티 프로세스멀티 스레드
장점프로세스 간의 독립성이 높음메모리 공유로 인한 자원 절약 및 빠른 통신
단점높은 오버헤드 및 메모리 소모동기화 문제 및 하나의 스레드에서의 오류 전파
사용 사례웹 서버, 데이터베이스 시스템 등그래픽 처리, 병렬 작업에 효율적인 프로그램

🔐 보안

멀티 프로세스는 각 프로세스가 독립된 메모리 공간을 사용하기 때문에, 보안 측면에서 이점이 있습니다. | 멀티 스레드는 스레드 간 메모리를 공유하므로, 보안에 더 많은 주의를 기울여야 합니다. |

🌐 확장성

멀티 프로세스는 새로운 프로세스를 추가하여 확장할 수 있지만, 시스템 자원의 제한으로 인해 한계가 있습니다. 멀티 스레드는 스레드를 쉽게 추가하여 확장성이 높으나, 동시성 제어에 신경을 써야 합니다.

🎢 개발 난이도

멀티 프로세스는 각 프로세스가 독립적이므로, 개발 및 디버깅이 상대적으로 쉽습니다. 멀티 스레드는 스레드 간의 동기화 및 상호 작용으로 인해 개발 및 디버깅이 복잡해질 수 있습니다.

profile
What a Beautiful World~ 🌏

0개의 댓글