스레드의 수명 주기는 신규, 준비, 실행, 차단 및 소멸의 다섯 부분으로 나뉩니다. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!