用户线程:Java虚拟机在它所有非守护线程已经离开后自动离开。
守护线程:守护线程则是用来服务用户线程的,如果没有其他用户线程在运行,那么就没有可服务对象,也就没有理由继续下去。
守护线程与普通线程的唯一区别是:当JVM中所有的线程都是守护线程的时候,JVM就可以退出了;如果还有一个或以上的非守护线程则不会退出。也就是,只要存在用户线程,守护线程就一直在。
package com.Thread.demo1;
public class daemon {
public static void main(String[] args) {
God god = new God();
Me me = new Me();
Thread thread = new Thread(god);
thread.setDaemon(true);//默认为false false为用户线程
thread.start();//守护线程启动
new Thread(me).start();//用户线程启动
}
}
//你
class Me implements Runnable{
@Override
public void run() {
for (int i = 0; i < 36500; i++) {
System.out.println("我还活着");
}
System.out.println("==========GOODBYE==============");
}
}
//上帝
class God implements Runnable{
@Override
public void run() {
while(true){
System.out.println("上帝一直都在");
}
}
}
输出的一部分结果: