Java Threading Meeting은 다음 세 가지 방법으로 끝나고 끝이 끝난 후에는 죽음의 상태입니다.
1. run() 또는 call() 메소드가 실행되고 스레드가 정상적으로 종료됩니다.
2. 실이 예외 또는 오류를 던진다.
3. 스레드의 stop() 메소드를 직접 호출하여 스레드를 끝내십시오.
참고 : 기본 스레드가 종료되면 다른 스레드는 어떤 식 으로든 영향을받지 않으며 그로 끝나지 않습니다. 자식 스레드가 시작되면 기본 스레드와 동일한 상태를 가지며 기본 스레드의 끝에 영향을받지 않습니다.
스레드가 죽었는지 여부를 테스트하기 위해 스레드 객체의 isAlive() 메소드를 호출 할 수 있습니다. 스레드가 준비, 실행 및 차단의 세 가지 상태에 있으면이 방법은 true를 반환합니다. 스레드가 새로운 상태와 죽은 상태에 있으면 메소드가 False를 반환합니다.
테스트는 다음과 같이 스레드 사망 상황의 1과 2에서 수행됩니다.
기본 스레드의 코드는 다음과 같습니다.
공개 클래스 스레드 테스트 {public static void main (string [] args)은 InterruptedException {Thread T = New Thread (new Runtask ()); t.start (); while (true) {thread.sleep (1000); System.out.println ( "주 스레드 : 자식 스레드 상태는" + t.isalive ()); }}}테스트 1 : 스레드가 정상적으로 종료 된 후 isalive ()가 거짓을 반환합니다.
스레드가 정상적으로 끝나는 스레드 실행 코드를 작성하십시오.
공개 클래스 runtask는 runnable {@override public void run () {for (int idx = 1; idx <= 10; idx ++) {system.out.println ( "하위 스레드 : 여전히 살아남아"+idx); try {thread.sleep (3000); } catch (InterruptedException e) {e.printstacktrace (); }}}} 두 스레드의 출력 결과는 다음과 같습니다. 자식 실행이 완료되면 Thread.isAlive() 사용하여 false를 반환합니다.
메인 스레드 상태는 진정한 메인 스레드입니다 : 아동 스레드 상태는 진정한 서브 스레드 : I Am Alive 8 메인 스레드 : 아동 스레드 상태는 진정한 주 스레드입니다 : 어린이 실 상태는 진정한 주 스레드입니다 : 어린이 실 상태는 진정한 스레드 스레드입니다 : 자식 실은 진정한 주 스레드입니다 : 어린이 스레드 상태 : Child State IS 메인 스레드입니다. 메인 스레드는 주정부 상태입니다. 스레드 스레드는 거짓 메인 스레드입니다 : 아동 스레드 상태는 거짓 메인 스레드입니다 : 아동 스레드 상태는 거짓 메인 스레드입니다. 아동 스레드 상태는 거짓 메인 스레드입니다 : 자식 스레드 상태는 거짓 메인 스레드입니다 : 아동 스레드 상태는 거짓 메인 스레드입니다 : 아동 스레드 상태는 거짓 메인 스레드입니다 : 어린이 실 상태는 거짓 주 스레드입니다. 어린이 스레드는 거짓 주제입니다. False Main Thread : Child Thread State는 False Main Thread입니다 : Child Thread State는 False Main Thread : Child Thread State IS False Main Thread : Child Thread State IS False Main Thread : Child Reske State는 False입니다.
테스트 2 : 자식 스레드가 예외를 던지면 스레드의 isalive ()가 false를 반환합니다.
자식 스레드의 코드를 수정하고 예외 던지기를 추가하십시오.
공개 클래스 runtask는 runnable {@override public void run () {for (int idx = 1; idx <= 10; idx ++) {system.out.println ( "하위 스레드 : 여전히 살아남아"+idx); try {thread.sleep (3000); } catch (InterruptedException e) {e.printstacktrace (); } if (idx == 5) {새로운 runtimeexception을 던지십시오 ( "I am die"); }}}}다시 실행하고 출력을 관찰하십시오.
메인 스레드 상태는 진정한 메인 스레드입니다 : 아동 스레드 상태는 진정한 메인 스레드입니다 : 아동 스레드 상태는 진정한 하위 스레드입니다 : 아동 스레드 상태는 진정한 하위 스레드입니다 : 어린이 스레드 상태는 진정한 하위 스레드입니다 : 아동 스레드 상태는 진정한 하위 스레드입니다 : 아동 스레드 상태는 진정한 주 스레드입니다 : 어린이 실 상태 : 어린이 실 상태 : Child State는 True java.recement입니다. 나는 java.lang.threat.run (thread.java:662)에서 runtask.run (runtask.java:15)에서 죽습니다. 메인 스레드 : 자식 스레드 상태는 거짓 메인 스레드 : 어린이 스레드 상태입니다.
예외가 발생한 후에는 어린이 실이 직접 종료되어 플라스 지 상태가된다는 것을 알 수 있습니다.
요약
스레드가 정상적으로 종료되거나 스레드가 끊임없는 예외를 던지면 스레드가 죽고 isalive () 함수는 false를 반환합니다. 좋아, 위는이 기사의 전체 내용입니다. 이 기사의 내용이 모든 사람의 연구 나 업무에 도움이되기를 바랍니다. 궁금한 점이 있으면 의사 소통을 위해 메시지를 남길 수 있습니다.