스레드의 수명 주기, 즉 스레드 상태는 새로운 상태(New), 준비 상태(Runnable), 실행 상태(Running), 차단된 상태(Blocked), 사망 상태(Dead)의 5단계로 구성됩니다.
스레드가 생성되어 시작되면 시작하자마자 실행 상태로 들어가지도 않고, 항상 실행 상태에 있는 것도 아니고 5가지 상태를 거치게 됩니다. 이 기사에서는 스레드의 수명 주기를 설명하고 스레드의 5가지 상태를 이해할 수 있도록 합니다. [추천 관련 동영상 튜토리얼: Java 튜토리얼]
New state(New)
프로그램이 new 키워드를 사용하여 스레드를 생성하면 스레드는 새로운 상태가 됩니다. 예:
Thread t = new MyThread();
준비 상태(실행 가능)
start() 메서드를 호출한 후 스레드는 준비 상태가 됩니다. 이는 스레드가 실행 준비가 되었음을 의미할 뿐입니다. 실행할 준비가 되었지만 아직 실행 중인 스레드가 아닙니다.
실행 상태(Running)
스레드가 JVM의 스레드 스케줄러에서 일정을 얻으면 스레드는 실행 상태가 되고 run() 메서드의 스레드 실행 본문을 실행하기 시작합니다.
Blocked
스레드가 여전히 활성 상태이지만 현재 실행할 수 없는 상태입니다(어떤 이유로 일시적으로 CPU 사용 권한을 포기하고 실행을 중지합니다).
세 가지 차단 상태:
1. 차단 대기 중:
1) 스레드가 wait() 메서드를 호출하여 이 스레드를 대기 상태로 전환합니다.
2) 이 스레드를 만들기 위해 Join() 메서드를 호출합니다. 대기 상태에 들어갑니다. 스레드는 또 다른 대기 상태에 들어갑니다. 즉, 스레드가 종료되거나 시간 초과될 때까지 기다리는 것입니다.
2. 동기 차단
스레드는 동기화 모니터(다른 스레드가 보유)를 얻지 못한 후 이 차단 상태에 들어갑니다.
3. 기타 차단
sleep() 메서드를 호출하여 점유된 CPU 리소스를 적극적으로 포기하거나 차단 IO 메서드를 호출하고 I/O 요청을 실행하여 이 차단 상태로 들어갑니다.
설명: 차단된 스레드는 적절한 시간(차단이 해제된 후)에 준비 상태로 다시 들어가고 스레드 스케줄러가 다시 예약할 때까지 기다립니다.
죽음 상태(Dead)
run() 메서드를 종료하면 스레드가 자연스럽게 종료되고 종료 또는 데드 상태가 되어 라이프 사이클이 종료됩니다.
요약: 위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.
위 내용은 스레드의 수명주기는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!