1.线程分为用户线程和守护线程
2.虚拟机必须保证用户线程执行完毕
3.虚拟机不用等待守护线程执行完毕
例如:后台记录操作日志,监控内存,垃圾回收等等
4.代码举例:
package Thread;
//测试守护线程、
//上帝守护你
public class TestDemo {
public static void main(String[] args) {
God god = new God();
You you = new You();
Thread thread = new Thread(god);
thread.setDaemon(true);
thread.start();//上帝守护线程启动
new Thread(you).start();//用户线程启动
}
}
//上帝
class God implements Runnable{
@Override
public void run() {
while(true){
System.out.println("上帝保护着你");
}
}
}
//你
class You implements Runnable{
@Override
public void run() {
for (int i = 0; i < 365000; i++) {
System.out.println("你开心的活着");
}
System.out.println("good bye world");
}
}
按理说我们并没有设置上帝线程的停止,但因为上帝线程是you线程的守护线程,因此当you线程执行完毕之后守护线程也会跟着停止.
?
|