如何创建并管理守护线程(后台线程)?

2026-05-29 13:054阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计450个文字,预计阅读时间需要2分钟。

如何创建并管理守护线程(后台线程)?

javapackage com.cn.thread;

/** * Author: Liu Zhiyong * Version: Version_1 * Date: 2016年7月7日16:35:52 * Desc: 守护线程(后台线程):如果一个进程中只剩余守护线程,那么守护线程也会死亡。 */public class GuardThread { public static void main(String[] args) { Thread guardThread=new Thread(() -> { while (true) { System.out.println(守护线程运行中...); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } }, GuardThread);

guardThread.setDaemon(true); guardThread.start();

System.out.println(主线程运行中...); try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(主线程结束,守护线程将自动结束。); }}


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

package com.cn.thread;
/**
* Author:Liu Zhiyong
* Version:Version_1
* Date:2016年7月7日16:35:52
* Desc:守护线程(后台线程):如果一个进程中只剩下了守护线程,那么守护线程也会死亡。
* 需求:模拟QQ下载更新包
*/
public class Demo12 extends Thread{

public Demo12(String name) {
super(name);
}
@Override
public void run() {
for(int i=1; i<=100; i++){
System.out.println("更新包目前下载到了" + i + "%");
try {
Thread.sleep(2);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(i == 100){
System.out.println("更新包下载完毕,准备安装。。。");
}
// try {
// Thread.sleep(10);
// } catch (InterruptedException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
}
}

public static void main(String[] args) {
Demo12 d = new Demo12("后台线程");
d.setDaemon(true);//设置线程是否为守护线程,true为守护线程,false为用户线程。
System.out.println("是守护线程吗?" + (d.isDaemon() == true?"是守护线程":"不是守护线程"));
d.setPriority(10);
d.start();
for(int i=1; i<=100; i++){
System.out.println(Thread.currentThread().getName() + ":" + i);
}

}
}

如何创建并管理守护线程(后台线程)?

本文共计450个文字,预计阅读时间需要2分钟。

如何创建并管理守护线程(后台线程)?

javapackage com.cn.thread;

/** * Author: Liu Zhiyong * Version: Version_1 * Date: 2016年7月7日16:35:52 * Desc: 守护线程(后台线程):如果一个进程中只剩余守护线程,那么守护线程也会死亡。 */public class GuardThread { public static void main(String[] args) { Thread guardThread=new Thread(() -> { while (true) { System.out.println(守护线程运行中...); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } }, GuardThread);

guardThread.setDaemon(true); guardThread.start();

System.out.println(主线程运行中...); try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(主线程结束,守护线程将自动结束。); }}


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

package com.cn.thread;
/**
* Author:Liu Zhiyong
* Version:Version_1
* Date:2016年7月7日16:35:52
* Desc:守护线程(后台线程):如果一个进程中只剩下了守护线程,那么守护线程也会死亡。
* 需求:模拟QQ下载更新包
*/
public class Demo12 extends Thread{

public Demo12(String name) {
super(name);
}
@Override
public void run() {
for(int i=1; i<=100; i++){
System.out.println("更新包目前下载到了" + i + "%");
try {
Thread.sleep(2);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(i == 100){
System.out.println("更新包下载完毕,准备安装。。。");
}
// try {
// Thread.sleep(10);
// } catch (InterruptedException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
}
}

public static void main(String[] args) {
Demo12 d = new Demo12("后台线程");
d.setDaemon(true);//设置线程是否为守护线程,true为守护线程,false为用户线程。
System.out.println("是守护线程吗?" + (d.isDaemon() == true?"是守护线程":"不是守护线程"));
d.setPriority(10);
d.start();
for(int i=1; i<=100; i++){
System.out.println(Thread.currentThread().getName() + ":" + i);
}

}
}

如何创建并管理守护线程(后台线程)?