1. 스레드 객체의 상태
자바에서 스레드 객체는 약 6가지의 상태를 가질 수 있으며, 스레드가 실행 중인지, 실행 대기 중인지, 종료되었는지 등에 따라 각 시점별로 하나의 상태를 가짐
Thread.State
이러한 스레드의 상태값은 Thread.State 클래스에서 ENUM 타입으로 관리됨
현재 스레드의 상태를 확인하기 위해서는 getState()를 호출하여 확인 가능
| ENUM 값 | 상태 | 설명 |
|---|---|---|
NEW | 스레드 객체 생성 | 스레드 객체가 생성된 후 아직 실행되지 않은 상태 |
RUNNABLE | 스레드 실행 대기 or 실행 중 | 현재 실행 대기 중이거나 실행 중인 상태 |
WAITING | 스레드 일시 정지 | 다른 스레드가 작업을 수행할 때까지 기다리는 상태 |
TIMED_WAITING | 스레드 일시 정지(정해진 시간) | 다른 스레드가 작업을 수행할 때까지 정해진 시간 만큼만 기다리는 상태 |
BLOCKED | 스레드 일시 정지(락 해제까지) | 다른 스레드가 임계 영역에 이미 접근 중이기 때문에 락(Lock)이 해제될 때까지 기다리는 상태(차단됨) |
TERMINATED | 스레드 실행 종료 | 스레드가 작업을 마치거나 예외가 발생하여 실행이 종료된 상태 |

Last updated on