멀티 스레드: 하나의 프로세스 내부에서 여러 개의 스레드가 동시에 실행되는 것
- 스레드끼리는 서로의 메모리 공간(Thread Stack)을 공유하고 접근할 수 있으며 IPC 통신이 아닌 메모리 기반 통신을 사용하기 때문에 통신 속도가 빠르다
멀티 프로세스: 여러개의 독립적인 프로세스가 동시에 실행되는 것
- 각 프로세스는 독립된 메모리 공간을 가지며 서로에게 접근하려면 IPC 통신을 사용해야 한다
IPC(Inter Process Communication): 프로세스간 서로 데이터를 주고받는 행위 또는 그에 대한 방법이나 경로를 뜻한다
프로세스
- 운영체제에게 자원을 할당받은
작업의 단위
- 프로세스는 운영체제에게 각각의 독립된 메모리 공간(Code, Data, Stack, Heap)을 할당받는다.
스레드
- 프로세스가 할당받은 자원을 이용하는
실행 흐름의 단위
- 스레드는 프로세스 내의 자원(Code, Data, Heap)을 공유하며 접근 할 수 있다
- 스레드마다 별도의 Stack 공간을 갖는다.