프로세스란?
- 실행 중인 하나의 프로그램을 말한다.
- 프로그램 하나에 여러가지의 프로세스가 실행될 수 있다. 1프로그램-1프로세스 (X)
ex) 인터넷익스플로어를 실행시키면 하나의 프로세스가 생성이 되고, 또 다른 익스플로어를 실행시키면 또다른 프로세스가 생성되는 것
멀티 태스킹?
- 두가지 이상의 작업을 동시에 처리하는 것
- 멀티 태스킹을 하기 위해서는 두가지 방법을 사용할 수 있다.
1. 멀티 프로세스 : 독립적으로 프로그램들을 실행하고 여러 가지 작업 처리
프로그램에서 여러 개의 프로세스를 생성
2. 멀티 스레드 : 한 개의 프로그램을 실행하고 내부적으로 여러 가지 작업 처리
하나의 프로세스 내에서 여러 개의 스레드를 실행하는 것
ex) 메신저 : 문자채팅하면서 파일전송 : 문자채팅스레드 + 파일전송 스레드
메인 스레드
- 모든 자바 프로그램은 메인 스레드가 main()메소드를 실행하면서 시작된다.
- main()메소드의 첫 코드부터 아래로 순차적으로 실행
- main()메소드의 마지막 코드를 실행하거나, return문을 만나면 실행이 종료된다.
즉, 코드의 실행 흐름-> 스레드
자바 프로그램을 실행하면 JVM으로부터 main스레드가 생성된다.
main 스레드는 작업 스레드를 만들어서 병렬로 코드들을 실행할 수 있다.
이때, 생성된 main 스레드 하나만 가지고 프로세스를 끝냈다면 -> 싱글 스레드
main스레드로 여러 작업 스레드를 만들어서 프로세스를 끝냈다면 -> 멀티 스레드
즉, 멀티 스레드를 생성해서 멀티 태스킹을 수행한다.
프로세스의 종료
- 싱글 스레드 : 메인 스레드가 종료하면 프로세스도 종료된다.
- 멀티 스레드 : 실행 중인 스레드가 하나라도 있다면, 프로세스는 종료되지 않는다.
* 메인 스레드가 작업 스레드보다 먼저 종료되더라도 작업 스레드가 계속 실행 중이라면 프로세스는 종료되지 않는다.
본 포스팅은 이것이 자바다 책을 참고하여 작성하였습니다.
'Java 공부' 카테고리의 다른 글
12장 스레드 우선순위 (0) | 2018.12.02 |
---|---|
12장 작업 스레드 생성과 실행 (0) | 2018.12.02 |
11장 API정리_String클래스 (0) | 2018.12.01 |
11장 API정리_Class클래스 (0) | 2018.12.01 |
11장 API 정리_Object클래스 (0) | 2018.12.01 |