Process
- 실행 중인 하나의 애플리케이션(프로그램)
- 사용자가 애플리케이션을 실행하면 OS로부터 실행에 필요한 메모리를 할당 받아 애플리케이션을 실행하는데, 이것을 프로세스라고 한다.
- ex) Chrome 브라우저를 2개 실행 : 두 개의 Chrome 프로세스가 생성된 것
Thread
- 대부분 네트워크 통신을 거치는 프로그램은 Multi-Thread 환경에서 구현이 되어야 한다.
- 간단히 말해서 여러 클라이언트에서 들어오는 메시지를 동시에 처리할 수 있어야 한다.
- 동시 처리를 위해 응용 프로그램(프로세스) 내에서 실행되는 최소 실행 단위
- 하나의 프로그램(Process)이 동시에 여러 개의 일을 수행할 수 있도록 함
- 경량 프로세스, 여러 개가 모이면 프로세스 형성
- 선점 형 CPU Scheduling (작업 관리자가 없는 CPU Scheduling)
- Scheduling : 각 프로세스들이 돌아가면서 CPU를 점유하며 작업하는 것
- java.lang.Thread 패키지 제공
Multi Tasking
- 컴퓨터에서 각각의 일을 전담하는 프로그램들(여러 개의 프로세스)을 동시에 실행하는 것
- ex) 워드로 문서 작업 + 미디어 플레이어로 음악 듣기 등
- 멀티 태스킹이 꼭 멀티 프로세스를 뜻하는 것은 아니다.
- ex) 메신저 : 채팅 기능을 제공하면서 동시에 파일 전송 기능을 수행
- 한 프로세스(메신저)에서 멀티 태스킹이 가능한 이유는 멀티 스레드를 이용
Multi Process & Multi Thread
- **멀티 프로세스(Multi Process)**는 애플리케이션 단위의 멀티 태스킹