![](https://velog.velcdn.com/images/gemnsh/post/c66e36e8-b0ab-433e-b976-886b15b05d78/image.png)
프로세스
- 메모리 상에서 실행중인 프로그램으로 별도의 공간을 독립적으로 할당받음
- stack, heap, data, code로 이루어져 있음
- 운영체제에서의 최소 작업 단위
멀티프로세스
- 멀티 스레드보다 많은 메모리공간과 CPU 시간을 필요로 함
- 안정성이 높음
- 작업량이 많아지면 성능저하가 발생할 수 있음
스레드
- 프로세스 내에서 실행되는 흐름의 단위
- stack만 따로 할당되고 heap, data, code는 서로 공유됨
- CPU에서의 최소 작업 단위
멀티스레드
- 멀티프로세스보다 적은 메모리를 차지함
- 스레드는 heap, data, code를 공유해서 통신이 쉬움
- 하나의 스레드 장애로 같은 프로세스 내 스레드가 모두 종료될 수 있음
- 병목현상과 같은 동기화 문제가 발생할 수 있음
- 설계에 주의가 필요함