`
shuibianla
  • 浏览: 5897 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

线程--守护线程

阅读更多
Java有两种Thread:“守护线程Daemon”与“用户线程User”。
我们之前看到的例子都是用户,守护线程是一种“在后台提供通用性支持”的线程,它并不 属于程序本体。
从字面上我们很容易将守护线程理解成是由虚拟机(virtual machine)在内部创建的,而用户线程则是自己所创建的。事实并不是这样,任何线程都可以是“守护线程Daemon”或“用户线程User”。他们在 几乎每个方面都是相同的,唯一的区别是判断虚拟机何时离开:
用户线程:Java虚拟机在它所有非守护线程已经离开后自动离开。
守护线程:守护线程则是用来服务用户线程的,如果没有其他用户线程在运行,那么就没有 可服务对象,也就没有理由继续下去。
setDaemon(boolean on)方法可以方便的设置线程的Daemon模式,true为Daemon模式,false为User模式。setDaemon(boolean on)方法必须在线程启动之前调用,当线程正在运行时调用会产生异常。isDaemon方法将测试该线程是否为守护线程。值得一提的是,当你在一个守护线 程中产生了其他线程,那么这些新产生的线程不用设置Daemon属性,都将是守护线程,用户线程同样。
在项目中我们是控制框架程序热部署时候用到。
分享到:
评论

相关推荐

    精灵线程(Daemon)或守护线程---马克-to-win java视频

    精灵线程(Daemon)或守护线程---马克-to-win java视频

    守护线程--源码--练手

    综上所述,这个压缩包中的"守护线程--源码--练手"项目提供了一个在Windows环境下实现非服务形式的守护线程示例,可以帮助开发者理解和实践Java守护线程的使用。通过阅读和分析源代码,我们可以学习到如何创建、设置...

    SYSBIOS系统开发入门-7-3-线程-软件中断.mp4

    SYSBIOS系统开发入门-7-3-线程-软件中断.mp4 SYSBIOS系统开发入门-7-3-线程-软件中断.mp4

    详解Java线程-守护线程与用户线程

    "Java守护线程与用户线程详解" Java中的线程可以分为守护线程(DaemonThread)和用户线程(UserThread)两类。守护线程和用户线程的唯一区别是它们对虚拟机的退出(程序的终止)的影响。 当JVM中只有守护线程时,虚拟机会...

    Java多线程-多线程知识点总结和企业真题

    - 守护线程是为了服务用户线程而存在的,当用户线程结束时,守护线程也会自动结束。 - **题5**:解释`join()`方法的作用。 - `join()`方法使当前线程等待另一个线程结束。 3. **常用方法、生命周期** - **题1**...

    Java多线程-Thread类的常用结构及线程优先级

    守护线程主要用于为应用程序提供后台服务,如垃圾收集器就是守护线程。当所有非守护线程结束后,即使还有守护线程在运行,JVM也会退出。可以通过`setDaemon(true)`方法将线程设置为守护线程。 总结: 理解并熟练...

    守护线程系统-含源码

    在Java编程中,守护线程(Daemon Thread)是一种特殊的线程类型,它的主要作用是为应用程序提供后台服务,而不会阻止程序的退出。当所有的非守护线程(用户线程)结束时,JVM会自动关闭守护线程并退出。在本项目...

    动力节点_Java基础视频教程218_线程-守护线程

    动力节点的Java课程适合绝对零基础的观看,教程中讲解了Java开发环境搭建、Java的基础语法、Java的面向对象。每一个知识点都讲解的非常细腻,由浅入深。适合非计算机专业,想转行做Java开发的朋友,或者想让Java基础...

    线程-java-包括实验报告

    而守护线程(如垃圾回收器)则为其他线程提供服务,当所有用户线程结束后,守护线程也会停止运行。 创建Java线程主要有两种方式:通过实现Runnable接口或继承Thread类。实现Runnable接口允许你将线程逻辑封装在任何...

    python多线程-threading模块.docx

    ### Python多线程-threaning模块详解 #### 概述 Python中进行多线程编程时,`threading`模块是非常重要的工具之一。相比于较为基础的`thread`模块,`threading`模块提供了更为丰富的功能与灵活性。本文将详细介绍`...

    性能之多线程-演示Demo

    最后,了解并掌握线程的优先级、守护线程、线程局部存储等特性,可以帮助我们更好地设计和优化多线程程序。在分析和调试多线程程序时,工具如Java的`jstack`命令、Python的`threading`模块的`enumerate()`和`active_...

    Java线程-第三版(CHM电子版)

    8. **守护线程与用户线程**:解释守护线程(Daemon Thread)的概念,以及它与用户线程的关系,如何创建和使用守护线程。 9. **并发编程最佳实践**:提供一系列实用的并发编程技巧和最佳实践,以提高代码的可读性、...

    利用Thread创建线程-java

    守护线程是一种特殊的线程,当所有非守护线程结束时,即使守护线程仍在运行,JVM也会退出。例如,垃圾收集器就是一个守护线程。 6. **Join方法** `join()`方法允许一个线程等待另一个线程完成其执行。这在需要...

    JAVA多线程--信号量(Semaphore)_.docx

    JAVA多线程--信号量(Semaphore) 信号量(Semaphore)是一种多线程环境下的设施,负责协调各个线程,以保证它们能够正确、合理地使用公共资源。从概念上讲,信号量维护了一个许可集。 信号量的类型有两种:单值信号...

    线程守护程序

    但如果存在守护线程,即使没有其他非守护线程,JVM也会继续运行,直到所有守护线程都完成执行。 创建守护线程的常见应用场景包括后台服务、资源清理、日志记录等。这些任务不直接影响程序的主要业务逻辑,但对程序...

    工作中学习多线程-一起进步

    例如,`join()`方法用于等待线程结束,`is_alive()`用于检查线程是否还在运行,而`daemon`属性可以设置线程为守护线程,这样当主线程结束时,守护线程也会自动结束。 总的来说,多线程在Python中是一种强大的工具,...

    430.428.JAVA基础教程_多线程-线程的生命周期(430).rar

    例如,可以使用`synchronized`关键字来防止数据竞争,用`join()`方法让一个线程等待另一个线程结束,用`interrupt()`方法中断线程,或者设置`Daemon`线程以使程序在所有非守护线程结束后还能继续运行。 理解并熟练...

    线程守护实例 远程线程 木马常用技术 VC6.0

    在IT行业中,线程守护和远程线程是两个重要的概念,尤其在系统编程和安全领域。本篇文章将深入探讨这两个主题,并结合木马常用技术,以及如何在Visual C++ 6.0(简称VC6.0)环境中进行实践。 首先,我们来了解什么...

    427.425.JAVA基础教程_多线程-每天一考(427).rar

    8. **守护线程(Daemon)**:守护线程不会阻止程序的退出,常用于后台服务,如垃圾回收器就是守护线程。 9. **死锁**:当两个或更多线程互相等待对方释放资源时,就可能发生死锁。避免死锁的关键是合理设计资源获取...

    linux c++ 守护线程,判断程序是否运行,不存在就启动

    在Linux系统中,C++编程时常常需要创建守护线程(daemon thread)来执行特定的任务,比如监控系统状态、定时任务或确保某个服务始终运行。守护线程是一种长期运行的后台进程,它不依赖于终端会话,即使用户注销或者...

Global site tag (gtag.js) - Google Analytics