본문 바로가기

Java 공부

12장 멀티스레드

프로세스란?

- 실행 중인 하나의 프로그램을 말한다.

- 프로그램 하나에 여러가지의 프로세스가 실행될 수 있다. 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