博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JVM内的守护线程Deamon与用户线程User Thread
阅读量:6580 次
发布时间:2019-06-24

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

    转载请注明原文地址: 

    一:守护线程Daemon

    守护线程:Daemon在希腊神话中解作“守护神”,顾名思义就是一直在JVM后台中运行着,为其他线程(用户线程)服务的。例如:垃圾回收线程GC线程就是守护线程。

    守护线程的生命周期:随着程序在JVM中运行,守护线程第一时间被启动,并且一直处于运行态。

                                当所有用户线程都执行完毕后,程序就会杀死守护线程,离开JVM,终止程序。

 

    二:用户线程转化为守护线程

     守护线程可以由用户线程转化而来,成为当前程序的守护线程之一运行到程序退出。

     我们可以调用用户线程对象的setDaemon(true)方法来将其转化为守护进程,然后启动它,它将持续运行到程序退出。

     在将用户线程转化为守护线程时要注意:

    (1) thread.setDaemon(true)必须在thread.start()之前设置,不能把正在运行的用户线程设置为守护线程。 

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

    (3) 守护线程不能用来进行JVM中文件、数据库的读写或者进行计算任务,因为当所以用户线程完成后程序会强行杀死所以守护线程,而若在守护线程中进行读写或计算的话有可能因为程序的退出而导致操作不能完成。

    

你可能感兴趣的文章
vector中的find
查看>>
〖Windows〗zigbee实验之cygwin编译tinyos.jar编译出错的解决方法
查看>>
1z0-052 q209_7
查看>>
PIN码计算锦集
查看>>
SharePoint 2013 自定义扩展菜单(二)
查看>>
[Unity3D]再次点击以退出程序
查看>>
架构师的97种习惯
查看>>
PHP 开发 APP 接口 学习笔记与总结 - XML 方式封装通信接口
查看>>
《区域经理》笔记
查看>>
linux和windows文件名称长度限制
查看>>
对一道编程题的后续思考
查看>>
IT基础架构规划方案之实际网络设计案例
查看>>
Navicat for MySQL 使用SSH方式链接远程数据库(二)
查看>>
Linux常用基本命令( mkdir )
查看>>
maven打包时跳过测试
查看>>
Wix 安装部署教程(十) --来,用WPF做个漂亮的安装界面
查看>>
WPF 窗口居中 & 变更触发机制
查看>>
php标准库spl栈SplStack如何使用?
查看>>
机器学习新手使用入门
查看>>
详解Spring Boot集成MyBatis的开发流程
查看>>