Java의 스레드 수명 주기 - Java의 스레드 상태
다중 스레드 환경을 위한 스레드 및 프로그래밍 작업을 수행할 때 Java 및 스레드 상태의 스레드 수명 주기를 이해하는 것은 매우 중요합니다. 이전 튜토리얼에서 Runnable 인터페이스를 구현하거나 Thread 클래스를 확장하여 Java 스레드 클래스를 만들 수 있지만 Java 스레드를 시작하려면 먼저 Thread 개체를 만들고 start() 메서드를 호출하여 run() 메서드를 실행해야 합니다. 스레드로.
Java의 스레드 수명 주기

새로운
new 연산자를 사용하여 새 Thread 개체를 만들 때 스레드 상태는 New Thread입니다. 이 시점에서 스레드는 활성 상태가 아니며 Java 프로그래밍 내부의 상태입니다.
실행 가능
Thread 객체에서 start() 함수를 호출하면 상태가 Runnable로 변경됩니다. 실행을 완료하기 위해 제어가 스레드 스케줄러에 제공됩니다. 이 스레드를 즉시 실행할지 또는 실행하기 전에 실행 가능한 스레드 풀에 유지할지 여부는 스레드 스케줄러의 OS 구현에 따라 다릅니다.
달리기
스레드가 실행 중이면 상태가 실행 중으로 변경됩니다. 스레드 스케줄러는 실행 가능한 스레드 풀에서 스레드 중 하나를 선택하고 상태를 실행 중으로 변경합니다. 그러면 CPU가 이 스레드를 실행하기 시작합니다. 스레드는 시간 분할, run() 메서드의 스레드 완료 또는 일부 리소스 대기에 따라 실행 상태에서 Runnable, Dead 또는 Blocked로 상태를 변경할 수 있습니다.
차단됨/대기
스레드는 waiter notifier 구현 또는 IO 리소스를 사용하여 다른 스레드가 완료될 때까지 대기할 수 있으며, 그런 다음 상태가 Waiting으로 변경됩니다. 스레드 대기 상태가 끝나면 상태가 Runnable로 변경되고 다시 실행 가능한 스레드 풀로 이동합니다.
죽은
스레드 실행이 완료되면 상태가 Dead로 변경되고 살아 있지 않은 것으로 간주됩니다. 위는 스레드의 다른 상태입니다. 그것들과 스레드가 상태를 어떻게 변경하는지 아는 것이 좋습니다. 이것이 자바의 스레드 수명 주기의 전부입니다.