아래 편집기는 Java 스레드를 기반으로 하는 여러 상태에 대한 기사를 제공합니다(자세한 설명). 편집자님이 꽤 괜찮다고 하셔서 이제라도 전해드리고 참고용으로 드리고 싶습니다. 편집기를 따라가서 살펴보겠습니다.
스레드에는 6가지 상태가 있습니다:
1.New(새로 생성됨)
2.Runnable(실행 가능)(running)
3.Blocked( 차단됨)
4.대기 중(대기 중)
5.시간 초과 대기(시간 초과)
6.종료됨(종료됨)
새로 생성된 스레드:
사용 시 new Thread(r)와 같은 새 스레드를 생성하는 new 연산자의 경우 스레드가 아직 실행을 시작하지 않은 상태이며 스레드가 실행되기 전에 수행해야 할 몇 가지 기본 작업이 아직 남아 있습니다.
실행 가능 스레드:
스레드가 시작 메소드를 호출하면 스레드는 실행 가능 상태가 됩니다. 이 상태의 스레드는 실행 중일 수도 있고 그렇지 않을 수도 있습니다. 즉, Java 사양에서 실행 중인 스레드는 여전히 실행 가능 상태입니다. 또한 스레드가 실행 중이거나 차단, 대기 또는 절전 상태에서 돌아온 후 실행 가능 상태로 돌아갑니다.
차단된 스레드:
이 상태에서는 여러 스레드가 다른 스레드의 동기화 블록의 실행 릴리스를 기다리거나 다른 사람이 재진입 동기화 블록을 호출하는 등 동기화 작업을 수행하는 시나리오입니다. ) 메소드는 스레드가 임계 섹션에 들어가기를 기다리고 있음을 의미합니다.
대기 스레드:
이 상태는 스레드가 특정 잠금을 소유한 후 대기 메서드를 호출하거나 스레드가 조인 메서드를 호출하여 다른 스레드에 조인하고 조인한 스레드의 실행을 기다리는 것을 의미합니다. 상태. 여기서 우리는 차단 상태와 대기 상태의 차이를 구별해야 합니다. 하나는 임계점 외부로 들어가기를 기다리고 있고, 다른 하나는 임계점 내부에서 기다리고 있습니다.
시간 제한 대기 스레드:
스레드가 시간 제한 매개변수가 있는 메서드를 호출하면 스레드가 시간 제한 대기 상태로 들어가게 됩니다. 슈퍼마켓 매개변수가 있는 메서드에는 Thread.sleep, Object.wait, Thread.join이 포함됩니다. Lock.tryLock 그리고 Condition.await의 시간 제한 버전입니다.
종료된 스레드:
1) run 메소드가 정상적으로 종료되었기 때문에 스레드가 자연스럽게 종료되었습니다.
2) 포착되지 않은 예외로 인해 run 메서드가 종료되어 예기치 않은 사망이 발생했습니다.
스레드 상태 간 전환:
위 내용은 Java 스레드에서 여러 상태 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!