当前位置: 首页 > news >正文

关于JAVA的守护进程

Java有两种线程:守护线程(Daemon Thread)与 用户线程(User Thread) 
任何Java线程都可以是守护线程(Daemon Thread)或者 用户线程(User Thread)

守护线程(Daemon Thread)

是为运行在相同的进程中的其它线程(User Thread)提供服务的,是一种“在后台提供通用性支持”的线程,它并不属于程序本体,比如垃圾回收线程就是一个很称职的守护者。

用户线程(User Thread)

就是我们通常谈论到的线程

如何区别它们

它们唯一的区别是判断虚拟机何时离开: 
用户线程(User Thread):Java虚拟机在它所有非守护线程已经离开后自动离开。 
守护线程(Daemon Thread):守护线程则是用来服务用户线程的,如果没有其他用户线程在运行,那么就没有可服务对象,也就没有理由继续下去。

当线程只剩下守护线程的时候,JVM就会退出.但是如果还有其他的任意一个用户线程还在,JVM就不会退出。

setDaemon(boolean on)方法可以方便的设置线程的Daemon模式,true为Daemon模式,false为User模式。setDaemon(boolean on)方法必须在线程启动之前调用,当线程正在运行时调用会产生异常。isDaemon方法将测试该线程是否为守护线程。值得一提的是,当你在一个守护线程中产生了其他线程,那么这些新产生的线程不用设置Daemon属性,都将是守护线程,用户线程同样。

需要注意的

#### 1. 在守护线程中产生的新线程也是守护线程 #### 2. 不是所有的应用都可以交给守护线程(Daemon Thread) 
因为所有的用户线程都离开时,JVM就该退出了,前面我也说过,当没有用户线程时,守护线程也该退出了,如果此时交给守护线程的任务(读写操作或者计算逻辑)没有完成,将造成严重的灾难。

转载于:https://www.cnblogs.com/google4y/p/3370748.html

相关文章:

  • DWZ中Tree树形菜单的treeCheck如何获取返回值解决方案
  • Knockout.Js官网学习(options绑定)
  • 【译】手动处理Team Foundation Server 2010 数据仓库和分析服务数据库
  • 多系统开机流程
  • 《你不常用的c#之一》:略谈unsafe
  • JNI的method映射对应表
  • Visual Studio 2008 使用 WinCE 5.0 Emulator
  • 每日英语:How Often Do Gamblers Really Win?
  • core--线程状态
  • 纵向二级列表
  • 转:windows xp下如何安装SQL server2000企业版
  • XCode 调试方法 (很全 很有用)
  • C#遍历DataSet中数据的几种方法总结
  • C#中巧用#if DEBUG 进行调试
  • [1] 平面(Plane)图形的生成算法
  • python3.6+scrapy+mysql 爬虫实战
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 30天自制操作系统-2
  • AHK 中 = 和 == 等比较运算符的用法
  • cookie和session
  • Cumulo 的 ClojureScript 模块已经成型
  • Git的一些常用操作
  • happypack两次报错的问题
  • Java到底能干嘛?
  • JS专题之继承
  • LintCode 31. partitionArray 数组划分
  • Linux Process Manage
  • Python_OOP
  • 编写高质量JavaScript代码之并发
  • 大整数乘法-表格法
  • 欢迎参加第二届中国游戏开发者大会
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 前端_面试
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 容器镜像
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​【已解决】npm install​卡主不动的情况
  • # Panda3d 碰撞检测系统介绍
  • #NOIP 2014# day.2 T2 寻找道路
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (4)事件处理——(7)简单事件(Simple events)
  • (多级缓存)缓存同步
  • (附源码)php新闻发布平台 毕业设计 141646
  • (六)激光线扫描-三维重建
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • .“空心村”成因分析及解决对策122344
  • .describe() python_Python-Win32com-Excel
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • ::before和::after 常见的用法
  • @EnableConfigurationProperties注解使用