为什么主线程结束守护线程还能继续执行

江南烟雨c 2016-08-10 12:37:39


/*
守护线程(后台线程):在一个进程中如果只剩下 了守护线程,那么守护线程也会死亡。

需求: 模拟QQ下载更新包。

一个线程默认都不是守护线程。

*/
public class Demo1 extends Thread {

public Demo1(String name){
super(name);
}

@Override
public void run() {
for(int i = 1 ; i<=100 ; i++){
System.out.println("更新包目前下载"+i+"%");
if(i==100){
System.out.println("更新包下载完毕,准备安装..");
}
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

public static void main(String[] args) {
Demo1 d = new Demo1("后台线程");
d.setDaemon(true); //setDaemon() 设置线程是否为守护线程,true为守护线程, false为非守护线程。
// System.out.println("是守护线程吗?"+ d.isDaemon()); //判断线程是否为守护线程。
d.start();

for(int i = 1 ; i<=100 ; i++){
System.out.println(Thread.currentThread().getName()+":"+i);
}

}

}

...全文
450 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
WinterIsComming 2018-09-13
  • 打赏
  • 举报
回复
子线程执行的函数里加sleep,因为有延迟啊,结束线程也需要时间啊
鸣鸣Amadues 2016-08-10
  • 打赏
  • 举报
回复
进程在的话可以控制哪个线程存在或者消失的

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧