JAVA

[JAVA-개념] 멀티스레드 개념과 동작

_주야 2012. 10. 27. 18:39

 

* 멀티스레드 개념과 동작 

Process (프로세스)

- 메모리에 적재된 상태로 실행되는 하나의 작업 단위.

- 하나의 운영 체계에서 여러 개의 프로세스가 동시에 실행되는 환경을 멀티태스킹(multi-tasking)

 

Thread (스레드)

- 프로그램 수행 시 프로세스 내부에 존재하는 일련의 실행 흐름의 단위.

- 프로세스 생성 시 하나의 주 스레드가 생성되어 대부분의 작업을 처리하고 주 스레드가 종료되면 프로세스도 종료

- 하나의 프로세스 내에서 다수의 스레드가 동시에 수행되는 것을 멀티스레딩 (multi-threading)

 

Multi-thread(멀티스레드) 동작

 

 

Start

                     - thread 생성 후에 start() method 호출 시 동작 시작 단계이다. 

Runnable

                     - thread가 실행되면 일반적으로 runnable 상태가 된다.

                     - runnable 상태의 thread는 여러 개 존재 할 수 있다. 

Run

                     - runnable 상태에서만 run 상태가 될 수 있다.

                     - 단 한 순간 단 하나의 thread만이 run 상태가 된다. 

NotRunnable

                     - NotRunnable 상태는 run 상태로 진입 할 수 없지만 dead 상태는 아닌 대기 상태이다.

                     - 다른 상태와 달리 직접 제어해야 상태 진입이 가능하다.

 Dead        

                     - run() method의 종료는 thread의 종료를 의미한다.