- 只要当前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){
}
}
}
}