守护线程(后台线程):在一个进程中如果只剩下 了守护线程,那么守护线程也会死亡。
需求: 模拟QQ下载更新包。
main:1
更新包目前下载1%
main:2
main:3
需求: 模拟QQ下载更新包。
一个线程默认不是守护线程。
public class Demo7 extends Thread {
public Demo7(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(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
Demo7 d = new Demo7("后台线程");
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);
}
}
}运行结果:main:1
更新包目前下载1%
main:2
main:3
......
本文通过一个Java示例程序展示了如何使用守护线程来模拟QQ软件的后台更新过程。程序中,守护线程负责模拟更新包的下载进度,而主线程则执行其他任务。当主线程结束时,守护线程也随之终止。
2976

被折叠的 条评论
为什么被折叠?



