Java에서 스레드는 사용자 스레드와 데몬 (서비스) 스레드의 두 가지 유형으로 나뉩니다. 사용자 스레드에 대한 setDaemon (false); 데몬 스레드에 세트 데몬 (true); 설정하지 않으면 사용자 스레드입니다.
단일 스레드를 끝내려면 Thread.interrupt () 메소드를 사용하고 멀티 스레드를 끝내려면 데몬 스레드를 설정해야합니다. 사용자 스레드가 존재하지 않으면 모든 데몬 스레드가 종료됩니다 (: 데몬 스레드는 서비스 스레드이고, 사용자 스레드는 서비스 스레드, 사용자 스레드 (서비스 스레드)가 사라지고 서비스 스레드가 존재하지 않고 자동으로 종료됩니다).
예:
Class StopThread는 runnable {public void run () {// 생성자, (true)가 인스턴스화 중에 기본적으로 실행됩니다. {// 영구적 인 루프는 데몬 스레드가 자동으로 System.out.println (thread.currentthread (). getName () + ".... run")인지 여부를 감지하는 데 사용됩니다. args) {stopthread st = new stopthread (); 스레드 t1 = 새 스레드 (st); // 새 스레드 생성 T2 = 새 스레드 (st); t1.setdaemon (true); // 데몬 (서비스) 스레드로 설정됩니다. 사용자 스레드가 완전히 중단되면 모든 데몬 스레드는 T2.SetDaemon (true); T1.Start (); 스레드를 시작합니다 T2.Start (); int num = 0; while (true) {if (num ++ == 10) {break;} system.out.println (strook.currentthread (). getName () + " +" + " +" + " +" + " +" + " +" + " +" num);} system.out.println ( "over");}}마지막 문장 system.out.println ( "Over")이 실행되면 사용자 스레드 (기본 프로그램)가 종료됩니다. 백엔드 영구 루프에서 정보를 지속적으로 출력하는 두 개의 데몬 스레드도 자동으로 종료됩니다.
또 다른 일반적인 질문이 소개됩니다. Java End의 모든 비 데몬 스레드가 모든 데몬 스레드가 자동으로 종료되면 이것이 사실입니까?
참조 답변 :
데몬 스레드의 유일한 기능은 다른 스레드에 서비스를 제공하는 것입니다. 데몬 스레드 만 남아 있으면 가상 머신이 종료됩니다.”(Java Core Technology). 이제는 방향이 없으므로 데몬이 서비스를 제공 할 필요가 없습니다.
요약
위는 Java 언어 다중 스레드 종료의 Daemon Thread 인스턴스에 대한이 기사의 전체 내용입니다. 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구는이 사이트의 다른 관련 주제를 계속 참조 할 수 있습니다. 단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다!