⭐ 프로세스
- 컴퓨터와 메모리에 올라와 실행되고 있는 프로그램
task
와 같은 의미
- 하나의 스레드로 이루어진 싱글스레드 프로세스, 여러개의 스레드로 이루어진 멀티스레드 프로세스로 나뉨
⭐ 스레드
- 프로세스 내 작업의 흐름을 지칭
⭐ 차이점
- 프로세스는
코드, 데이터, 스택, 힙 메모리 영역
을 기반으로 작업하는 반면, 스레드는 프로세스내의 스택 메모리를 제외한 다른 메모리 영역
을 프로세스 내의 다른 스레드들과 공유하기 때문에 메모리적 이점이 존재
- 프로세스는 다른 프로세스와 격리되어 있기 때문에 서로 통신을 위해서 IPC를 사용해야하지만, 스레드는 그냥 통신할 수 있으므로 더 빠름
- 프로세스는 한 프로세스에 문제가 생겨도 영향을 끼치지 않지만, 스레드는 다른 스레드에 영향을 줌
- 프로세스는 생성과 종료에 더 많은 시간이 소요