java守护线程和非守护线程

来源:互联网 发布:淘宝链接突然间没有了 编辑:程序博客网 时间:2024/05/18 03:00

背景

和组内同事分享《java虚拟机》,在讲到java虚拟机生命周期时提到java的守护线程和非守护线程,有同学问守护线程和非守护线程的区别和用法,这里学习一下。

守护线程和非守护线程的概念

用户线程:非守护线程包括常规的用户线程或诸如用于处理GUI事件的事件调度线程,Java虚拟机在它所有非守护线程已经离开后自动离开。

守护线程:守护线程则是用来服务用户线程的所谓守护线程是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程,并且这种线程并不属于程序中不可或缺的部分。因 此,当所有的非守护线程结束时,程序也就终止了,同时会杀死进程中的所有守护线程。反过来说,只要任何非守护线程还在运行,程序就不会终止。

守护线程和用户线程的没啥本质的区别:唯一的不同之处就在于虚拟机的离开:如果用户线程已经全部退出运行了,只剩下守护线程存在了,虚拟机也就退出了。 因为没有了被守护者,守护线程也就没有工作可做了,也就没有继续运行程序的必要了。

将线程转换为守护线程可以通过调用Thread对象的setDaemon(true)方法来实现。在使用守护线程时需要注意一下几点:

(1) thread.setDaemon(true)必须在thread.start()之前设置,否则会跑出一个IllegalThreadStateException异常。不能把正在运行的常规线程设置为守护线程。

(2) 在Daemon线程中产生的新线程也是Daemon的。

(3) 守护线程应该永远不去访问固有资源,如文件、数据库,因为它会在任何时候甚至在一个操作的中间发生中断。

参考

1.http://blog.csdn.net/wjh5240313226/article/details/51501941

2.https://www.cnblogs.com/lixuan1998/p/6937986.html


阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 红茶 小种 山小种红茶 茶叶小包装盒 野茶小种 茶人岭正山小种 尚茶正山小种 正山小种是什么茶 茶趣 正山小种 茶正山小种 正山小种属于什么茶类 正山小种是哪里的茶 小种茶叶属于什么茶 哪种茶是红茶 武夷红茶功效 铁观音是什么茶种 店小秘免费的跨境电商erp 小妈妈的秘密 qq小秘密 女生的小秘密 女生小秘密 我的小秘密 我有一个小秘密 我有个小秘密 qq小秘密在哪 小秘密舞蹈考级二级 办公室的小秘密 qq秘密 女生秘密 妈妈秘密 婚后的秘密小勇 小勇 我心中的小秘密 婚后的秘密小勇 qq小秘密如何知道是谁 我的小秘密300字 儿歌小秘密 小秘密歌曲 京小租 掠夺小秦子 觉悟by小秦子 小秦子 小秦子作品