✅ 멀티프로세싱 (Multiprocessing)
- 하나의 컴퓨터 시스템에서 여러 개의 프로세스를 동시에 실행하는 방식
각 프로세스는 독립된 메모리 공간과 자원을 가지고 실행됨
CPU 코어가 여러 개인 환경에서 병렬 처리 가능
예: 엑셀, 크롬, 카카오톡을 동시에 실행
✅ 멀티스레딩 (Multithreading)
- 하나의 프로세스 내에서 여러 스레드가 동시에 작업을 수행하는 방식
모든 스레드는 메모리(Heap) 등 자원을 공유
하나의 프로그램에서 동시에 여러 작업을 수행
예: 게임에서 그래픽 렌더링 + 배경음악 + 사용자 입력 처리
🧠 개념 요약
구분멀티프로세싱 (Multiprocessing)멀티스레딩 (Multithreading)
💡 정의 |
여러 개의 프로세스를 동시에 실행 |
하나의 프로세스 안에서 여러 스레드를 동시에 실행 |
🧱 구조 |
각 프로세스는 메모리 완전 분리 |
스레드는 메모리(Heap) 공유 |
📂 메모리 |
독립적 → 안전하지만 무겁다 |
공유됨 → 빠르지만 충돌 위험 있음 |
📈 사용 예 |
크롬에서 여러 창 실행 |
크롬 탭 여러 개, 게임 내 AI + 렌더링 동시 |
🔐 안정성 |
프로세스 간 충돌 거의 없음 |
동기화(synchronized) 필요 |
⚙️ 오버헤드 |
프로세스 생성/전환 비용 큼 |
스레드 전환이 훨씬 저렴함 |
🧩 예시로 이해하기
🔹 멀티프로세싱
- 엑셀 + 크롬 + 카카오톡 = 각자 다른 프로세스 (서로 독립)
- 각각 따로 메모리 사용
- 하나가 죽어도 다른 건 영향 없음
🔹 멀티스레딩
- 하나의 게임에서
스레드 1: 배경음악 재생
스레드 2: 사용자 입력 처리
스레드 3: 적 AI 실행
하나의 프로그램 안에서 여러 작업이 동시에 일어남
메모리 공유 → 속도 빠름, 하지만 충돌 위험 있음
🔁 정리
더 안정적인 건? |
✅ 멀티프로세싱 |
더 빠르고 가벼운 건? |
✅ 멀티스레딩 |
서로 메모리 공유 안함? |
✅ 멀티프로세싱 |
하나가 죽으면 전체 영향 있음? |
✅ 멀티스레딩 |