>  기사  >  Java  >  스레드의 수명주기는 무엇입니까?

스레드의 수명주기는 무엇입니까?

青灯夜游
青灯夜游원래의
2018-12-15 17:06:1513542검색

스레드의 수명 주기, 즉 스레드 상태는 새로운 상태(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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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