Java 스레드의 실행 주기에는 다음과 같은 상태가 있습니다.
1, NEW
이 상태는 스레드가 방금 생성되었으며 아직 시작되지 않았음을 의미합니다.
2. RUNNABLE
은 스레드가 정상적으로 실행되고 있음을 의미합니다. 물론 시간이 많이 걸리는 계산/IO 대기 작업/CPU 타임 슬라이스 전환 등이 있을 수 있습니다. 이 상태에서 발생하는 대기는 일반적으로 기타 시스템 리소스 및 잠금 해제, 절전 모드 등
(추천 동영상 튜토리얼: java video)
3. BLOCKED
이 상태에서는 다른 스레드의 동기화된 블록의 실행 릴리스를 기다리는 등 여러 스레드가 동기화된 작업을 수행하는 시나리오가 있습니다. 또는 다른 사람들은 재진입 동기화 블록에서 wait() 메소드를 호출합니다. 이는 스레드가 임계 섹션에 들어가기를 기다리고 있음을 의미합니다.
4. WAITING
이 상태는 스레드가 특정 잠금을 소유한 후 대기 메서드를 호출하고 스레드가 다음 작업을 계속할 수 있기 전에 다른 스레드/잠금 소유자가 알림/notifyAll을 한 번 기다린다는 것을 의미합니다.
여기서 BLOCKED와 WATING의 차이를 구별해야 합니다. 하나는 임계점 밖에서 대기하고 있고, 다른 하나는 스레드가 다른 스레드에 조인하기 위해 조인 메소드를 호출할 때 다른 사람이 알릴 때까지 기다리고 있습니다. 스레드가 종료되면 해당 스레드의 실행이 끝날 때까지 대기합니다.
5. TIMED_WAITING
이 상태는 제한적(시간 제한) WAITING입니다. 일반적으로 대기(long), 조인(long) 등이 호출되면 TIMED_WAITING 상태로 들어갑니다. .
6. TERMINATED
이 상태는 스레드의 실행 메서드가 실행되었음을 나타내며 이는 기본적으로 종료와 동일합니다(그 당시 스레드가 지속적으로 유지되면 재활용되지 않을 수 있습니다).
추천 튜토리얼: java 입문 프로그램
위 내용은 Java 스레드의 여러 상태는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!