>  기사  >  Java  >  Java 스레드의 여러 상태는 무엇입니까?

Java 스레드의 여러 상태는 무엇입니까?

王林
王林원래의
2020-05-14 15:53:012598검색

Java 스레드의 여러 상태는 무엇입니까?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.