网站首页 > 精选教程 正文
守护线程其实就是非守护线程的保姆,只有非守护线程存在时,守护线程才能存在,一旦非守护线程结束,则守护线程无条件地退出。
下面通过一个例子来说明守护线程的运行机制
/**
* 守护线程测试
* @author ssj
*
*/
public class SouhuTest {
public static void main(String[] arg0) {
System.out.println("===============main start=============");
Thread watchThread= new Thread("守护线程...") {
@Override
public void run() {
int j = 0;
while (j<1000) {
j++;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + ":" + j);
}
super.run();
}
};
Thread userThread = new Thread("非守护线程") {
@Override
public void run() {
int j = 0;
while (j <= 3) {
j++;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + ":" + j);
}
super.run();
}
};
// setDaemon, 不设置则默认false
watchThread.setDaemon(true);// 设置watchThread为守护线程
userThread.setDaemon(false);// 设置userThread为非守护线程
watchThread.start();
userThread.start();
System.out.println("===========main end===============");
}
}
运行结果
如果我注释非守护线程的运行代码://userThread.start();
运行结果会如何呢?
答案是守护线程不打印
通过上面的测试,我们得出结论:
守护线程是jvm中一切非守护线程的保姆,它的存亡无关紧要
那么守护线程的作用是什么呢?
1 jvm的垃圾回收器使用的就是守护线程,当某个线程运行产生的垃圾过多时,守护线程会实时监视并回收垃圾;当线程结束时,垃圾其实也相应地释放了,也就用不上守护线程了,守护线程也就退出了
2 守护线程用来服务于指定的线程,如数据连接池的关闭等,做一个辅助和保障功能;
猜你喜欢
- 2025-01-19 springboot@EnableAutoConfiguration 注解的作用以及加载流程
- 2025-01-19 JAVA自定义注解
- 2025-01-19 Spring系列(十一):@Autowired和@Resource注解用法介绍
- 2025-01-19 JAVASE:注解与反射笔记
- 2025-01-19 Java @Data注解
- 2025-01-19 Java 自定义注解在登录验证的应用
- 2025-01-19 揭秘SpringBoot的魔法:20个注解让你的应用飞起来
- 2025-01-19 Java核心基础之自定义注解
- 2025-01-19 Spring 最常用的 7 大类注解,史上最强整理
- 2025-01-19 哥,厉害,一文讲完了Spring的各种注解...
你 发表评论:
欢迎- 07-10动漫人物像|插画 壁纸 头像 签名 素材
- 07-10运动人物|插画 壁纸 头像 签名 素材
- 07-10动漫人物|插画 壁纸 头像 签名 素材
- 07-10神话人物|插画 壁纸 头像 签名 素材
- 07-10日漫人物像|插画 壁纸 头像 签名 素材
- 07-10 日漫人物|插画 壁纸 头像 签名 素材
- 07-10日漫人物风|插画 壁纸 头像 签名 素材
- 07-10日漫人物|插画 壁纸 头像 签名 素材
- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)