>  기사  >  스레드의 수명주기는 여러 부분으로 나뉩니다.

스레드의 수명주기는 여러 부분으로 나뉩니다.

清浅
清浅원래의
2019-04-02 17:41:4949246검색

스레드의 수명 주기는 신규, 준비, 실행, 차단 및 소멸의 다섯 부분으로 나뉩니다. CPU는 여러 스레드 간에 전환해야 하므로 스레드 상태도 다중 실행과 차단 간에 전환됩니다

스레드의 수명주기는 여러 부분으로 나뉩니다.

[추천 과정: C 언어 튜토리얼

스레드가 생성될 때 이후 시작되자마자 실행 상태로 들어가지도 않고, 항상 실행 상태에 있는 것도 아닙니다. 스레드의 수명 주기에서는 New, Runnable, Running, Blocked 및 Dead의 5가지 상태를 거칩니다. 특히 스레드가 시작되면 단독으로 실행하기 위해 항상 CPU를 "점유"할 수 없으므로 CPU가 여러 스레드 간에 전환해야 하므로 스레드 상태가 여러 번 실행 및 차단 간에 전환됩니다.

라이프 사이클의 다섯 가지 상태

새 스레드

Thread 클래스의 인스턴스(객체)가 생성되면 이 스레드는 새로운 상태(시작되지 않음)로 들어갑니다.

예:

Thread  t1=new Thread();

Ready(실행 가능)

스레드가 시작되었으며 CPU 타임 슬라이스에 할당되기를 기다리고 있습니다. 이는 스레드가 CPU 리소스를 얻기 위해 대기하는 준비 대기열에 대기하고 있음을 의미합니다

예:

t1.start();

Running(running)

스레드는 CPU 리소스를 획득하고 작업(run() 메서드)을 실행 중입니다. 단, 이 스레드가 자동으로 CPU 리소스를 포기하거나 더 높은 CPU 리소스를 포기하지 않는 한입니다. 우선순위가 입력되면 스레드는 끝까지 계속 실행됩니다.

Blocked

어떤 이유로 실행 중인 스레드가 CPU를 포기하고 자체 실행을 일시 중단합니다. 즉 차단 상태에 들어갑니다.

잠자기: 스레드를 절전 모드로 전환하려면 sleep(long t) 메서드를 사용하세요. 휴면 스레드는 지정된 시간이 경과한 후 준비 상태로 들어갈 수 있습니다.

대기 중: wait() 메서드를 호출합니다. (준비 상태로 돌아가려면 motivate() 메소드를 호출하십시오.)

다른 스레드에 의해 차단됨: suspens() 메소드를 호출하십시오. (resume() 메소드를 호출하여 재개)

Death(dead)

스레드가 실행을 완료하거나 다른 스레드에 의해 종료되면 해당 스레드는 종료 상태에 진입합니다. 이때 스레드는 준비 상태로 진입할 수 없습니다. 그리고 실행을 기다립니다.

자연 종료: run() 메서드를 정상적으로 실행한 후 종료

비정상 종료: stop() 메서드를 호출하여 스레드 실행을 중지

요약: 위 내용이 이 글의 전체 내용이므로, 모두에게 도움이 됩니다

위 내용은 스레드의 수명주기는 여러 부분으로 나뉩니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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