이 튜토리얼의 운영 환경: Windows 7 시스템, Java 10 버전, DELL G3 컴퓨터.
1. 신규 : 생성 후 아직 시작되지 않은 스레드가 이 상태입니다.
2. Runnable : 운영 체제 스레드 상태에 Running 및 Ready가 포함됩니다. 즉, 이 상태의 스레드는 실행 중이거나 운영 체제가 실행 시간을 할당하기를 기다리고 있을 수 있습니다.
3. 대기 : 이 상태의 스레드에는 프로세서 실행 시간이 할당되지 않습니다. 다른 스레드에 의해 명시적으로 깨어날 때까지 기다려야 합니다. 다음 메소드를 사용하면 스레드가 대기 상태가 됩니다.
Object::wait() 메소드는 Timeout 매개변수를 설정하지 않습니다.
Timeout 매개변수를 설정하지 않은 Thread::join() 메소드;
LockSupport::park() 메서드.
4. 시간 초과 대기 : 이 상태의 스레드에는 프로세서 실행 시간이 할당되지 않지만 다른 스레드에 의해 명시적으로 깨어날 때까지 기다릴 필요는 없습니다. 일정 시간이 지나면 시스템에 의해 자동으로 깨어납니다. 다음 메소드는 스레드를 최종 기한 대기 상태로 전환합니다.
Timeout 매개변수가 설정된 Object::wait() 메소드;
Timeout 매개변수가 설정된 Thread::join() 메소드;
LockSupport::parkNanos() 메서드;
LockSupport::parkUntil() 메서드.
5. Blocked : 스레드가 차단되었습니다. "차단 상태"와 "대기 상태"는 다른 스레드가 잠금을 포기할 때 발생합니다. "대기 상태"는 일정 시간 동안 기다리거나 절전 모드 해제 작업이 발생하기를 기다리는 것입니다. 프로그램이 동기화 영역에 들어가기를 기다리는 동안 스레드는 이 상태에 들어갑니다.
6. 종료됨 : 종료된 스레드의 스레드 상태, 스레드가 실행을 종료했습니다.
위 내용은 Java 스레드의 6가지 상태입니다. 모든 사람에게 도움이 되기를 바랍니다.
추가 Java 학습 가이드: 자바 튜토리얼