博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java守护线程的理解
阅读量:6156 次
发布时间:2019-06-21

本文共 1225 字,大约阅读时间需要 4 分钟。

hot3.png

守护线程与普通线程的唯一区别是:

理解一 :  守护线程就是main同生共死,当main退出,它将终止,而普通线程是在任务执行结束才停止。

理解二 用户线程:Java虚拟机在它所有非守护线程已经离开后自动离开。守护线程则是用来服务用户线程的,如果没有其他用户线程在运行,那么就没有可服务对象,也就没有理由继续下去。

例如:我们所熟悉的Java垃圾回收线程就是一个典型的守护线程,当我们的程序中不再有任何运行中的Thread,程序就不会再产生垃圾,垃圾回收器也就无事可做,所以当垃圾回收线程是Java虚拟机上仅剩的线程时,Java虚拟机会自动离开。

测试代码:

  线程

public class ThreadDemo implements Runnable {     public void run() {	  while (true) {            for (int i = 1; i <= 100; i++) {                System.out.println(i);                try {                    Thread.sleep(1000);                } catch (InterruptedException e) {                    e.printStackTrace();                }              }	   }    	}}
public class Test {	public static void main(String[] args) {		Thread daemonThread = new Thread(new ThreadDemo());		daemonThread.setName("测试thread");		// 设置为守护进程                daemonThread.setDaemon(true);                daemonThread.start();                System.out.println("isDaemon = " + daemonThread.isDaemon());                Thread t = new Thread(new ThreadDemo());                t.start();	}}

   因为有线程t 的存在,守护线程daemonThread 一直执行,当将下面代码注释掉时,守护线程daemonThread ,随着main结束,而结束。

Thread t = new Thread(new ThreadDemo());t.start();

转载于:https://my.oschina.net/u/1268001/blog/225294

你可能感兴趣的文章
运营商何时推出无限流量?
查看>>
物联网赚钱三大步骤浅析
查看>>
抢占乡镇渠道 中国手机厂商比苹果有经验
查看>>
深藏不露,挖掘4种大脑网络中的管理工具
查看>>
联发科Helio P35处理器曝光:10GB运存
查看>>
一文看懂真实的英国大数据产业以及创业图谱
查看>>
大数据在医疗保健中的真正愿景
查看>>
时代风口下,东软集团软件业务怎么转型?
查看>>
for循环诡异情况
查看>>
CloudCC CRM探讨如何建立完善的服务体系
查看>>
EasyStack一天连中五单,OpenStack新拐点显现
查看>>
它是最神秘的黑客组织:来自战斗民族 专黑美国
查看>>
推荐系统-基于矩阵分解的LFM模型
查看>>
Raider对F#支持的技术细节
查看>>
在Win2003、Win7、XP中配置IIS搭建ASP.NET Web网站或应用程序(1)
查看>>
微软反垄断案新突破 Win10系统或需剥离可信计算
查看>>
拥抱开放式网络 通往下一代数据中心
查看>>
一站式金融云托管服务 都匀融通村镇银行系统成功上线运行
查看>>
红外摄像机的功率究竟有多大
查看>>
春风十里不如春城一聚:华平解决方案巡展走进昆明
查看>>