守护(daemon)线程
线程分为用户线程和守护线程
虚拟机必须确保用户线程执行完毕,用户线程执行完毕后,守护线程开始停止
虚拟机不用等待守护线程执行完岁
setDaemon();//括号内为true表示守护线程,false表示用户线程
//默认都是false,用户线程
如,后台记录操作日志,监控内存,垃圾回收等待
package thread.state;
public class TestDaemon {
public static void main(String[] args) {
God god = new God();
You you = new You();
Thread god1 = new Thread(god);
god1.setDaemon(true);//默认是false表示是用户线程,正常的线程都是用户线程
god1.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 < 100; i++) {
System.out.println("你开心的活到了"+i+"岁");
}
System.out.println("=======goodbye world=======");
}
}
//虚拟机关闭需要点时间