1. New 상태
Thread task = new Task_thread(); 작업 Thread 객체를 생성한 상태 NEW 상태의 Thread는 Scheduling되지 않는다. 스케쥴링 : JVM이 Runnable상태인 Thread 중 하나를 선택해 실행시키는 과정이다. | cs |
2. Runnable 상태
task.start(); 생성 된 thread가 start() method를 호출한 해당 thread는 Scheduling 될 수 있는 Runnable 상태(실행 대기 상태)가 된다. | cs |
3. Running 상태
Scheduler에 의해 Scheduling된 상태
Runnable 상태에서 Running 상태로 변경
실행 상태
3. Blocked 상태
실행 중인 thread가 I/O(입 출력) 작업에 들어가게 되면 해당 thread는 JVM에 의해 즉각 중지되며 Blocked 상태가 된다.
BLOCK 상태의 thread는 I/O 작업이 완료 될 때까지 Scheduling 되지 않고 대기 한다.
I/O 작업이 완료되면 thread는 자동으로 Runnable 상태가 된다.
4. WAITING 상태
task.yield(); Thread가 yield() method를 호출한 상태 다른 thread에게 우선 순위를 양보 실행중인 스레드는 즉각 RUNNALBE상태가 된다. | cs |
5. TIMED_WATTING 상태
task.sleep(2000); Thread가 sleep(millis) method를 호출한 상태 주어진 시간 동안 대기 단위는 밀리초 millis 밀리초 후 깨어나 RUNNABLE 상태가 된다. | cs |
6. TEMINATED상태
run() method가 완료되어 thread가 종료된 상태
더 이상 RUNNABLE 상태로 되돌아 올 수 없다.
'Java언어' 카테고리의 다른 글
추상 클래스와 인터페이스의 차이 (0) | 2018.08.16 |
---|---|
Data Type(기본형,참조형)의 종류와 Size (1) | 2018.08.16 |
Thread 생성방법 (0) | 2018.08.16 |
Thread란? (1) | 2018.08.16 |
OOP 란? (0) | 2018.08.16 |