- 只要当前JVM中尚有任何一个非守护线程没有结束,守护线程就全部工作
- 只有当JVM中最后一个非守护线程结束时,守护线程就会随着JVM一起结束工作
- 守护线程的作用为其他线程的运行提供便利,守护线程最典型的应用是GC(垃圾回收器)。
- 守护线程并非只有JVM内部提供,用户在编程时可以自己设置守护线程
- thread.setDaemon(true)
- thread.setDaemon(true)必须在start()之前设置
- 不能把正在运行的线程设置为守护线程
package com.gdzy.Thread; public class DaemonThreadTest { public static void main(String[] args) { Thread com = new MyCommon(); Thread td1 = new MyDaemon(); td1.setDaemon(true); td1.start(); com.start(); } } class MyDaemon extends Thread{ public void run(){ for(int i=0;i<10000000000l;i++){ System.out.println("守护线程第"+i+"次输出"); try{ Thread.sleep(10); }catch(Exception e){ } } } } class MyCommon extends Thread{ public void run(){ for(int i=0;i<10;i++){ System.out.println("普通线程第"+i+"次输出"); try{ Thread.sleep(1000); }catch(Exception e){ } } } }