- Multi Process : 하나의 프로그램을 여러 개의 프로세스로 구성하여 각 프로세스가 하나의 작업을 처리하는 것
- 장점: 하나의 프로세스가 잘못되어도 프로그램은 동작함
- 단점: context switching 비용(캐시 메모리 초기화 등)을 발생시킴
- Multi Thread : 프로그램을 여러 개의 쓰레드로 구성하고 각 쓰레드가 작업을 처리하는 것
- 장점
- 시스템 자원 소모 감소 : 프로세스를 생성하여 자원을 할당하는 시스템 콜이 줄어들어 자원의 효율성을 증대시킴
- 처리 속도 향상 : 스레드는 프로세스 대비 context 정보가 작기 때문에 Context Switching이 빠름
- 쓰레드간 자원 공유 : 스레드들은 stack 영역을 제외한 모든 영역을 공유하기 때문에 통신에 대한 부담이 없음
- 단점
- 디버깅 어려움
- 동기화 이슈 발생 : 자원을 공유함 → 전역변수를 사용하면 충돌이 발생할 수 있음
- 하나의 스레드의 오류로 전체 프로세스에 문제가 발생할 수 있음