Thread.setDaemon设置守护线程

Thread.setDaemon设置守护线程Java 中线程分为用户线程 userthread 和守护线程 daemonthread 它们通过 Thread 的 daemon 属性标识 true 表示守护线程 false 表示用户线程 一个 Thread 初始默认为用户线程 daemon 默认为 false 创建 Thread 的时候默认从当前线程 继承 daemon 属性 见 Thread init 方法 Threadparent currentThrea this daemon parent isDaemon 当虚拟机中剩余运行

Thread parent = currentThread(); this.daemon = parent.isDaemon(); 
public final void setDaemon(boolean on) { 
    checkAccess(); if (isAlive()) { 
    throw new IllegalThreadStateException(); } daemon = on; } 

  例1:thread是用户线程,主线程结束后,thread会继续运行

public static void main(String[] args) throws Exception { 
    Thread thread = new Thread(new Runnable() { 
    @Override public void run() { 
    while (true) { 
    try { 
    Thread.sleep(1000L); System.out.println("still running."); } catch (InterruptedException e) { 
    e.printStackTrace(); } } } }); //设置线程为用户线程 thread.setDaemon(false); thread.start(); Thread.sleep(3000L); System.out.println("主线程退出"); } //输出 still running. still running. 主线程退出 still running. still running. still running. still running. 

  例2:thread是守护线程,主线程结束后,thread会随即停止

 public static void main(String[] args) throws Exception { 
    Thread thread = new Thread(new Runnable() { 
    @Override public void run() { 
    while (true) { 
    try { 
    Thread.sleep(1000L); System.out.println("still running."); } catch (InterruptedException e) { 
    e.printStackTrace(); } } } }); //设置线程为守护线程 thread.setDaemon(true); thread.start(); Thread.sleep(3000L); System.out.println("主线程退出"); } //输出 still running. still running. 主线程退出 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224297.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午12:15
下一篇 2026年3月17日 下午12:15


相关推荐

  • Jenkins学习一:Jenkins是什么?

    Jenkins学习一:Jenkins是什么?第一章Jenkins是什么?Jenkins是一个可扩展的持续集成引擎。主要用于:l持续、自动地构建/测试软件项目。l监控一些定时执行的任务。Jenkins拥有的特性包括:l易于安装-只要把jenkins.war部署到servlet容器,不需要数据库支持。l易于配置-所有配置都是通过其提供的web界面实现。l集成RSS/E-mail通过RSS发布构建结果…

    2022年6月2日
    55
  • 软件构架师的特点

    软件构架师的特点

    2021年7月31日
    62
  • Android性能优化总结

    Android性能优化总结安卓开发大军浩浩荡荡 经过近十年的发展 Android 技术优化日异月新 如今 Android9 0 已经发布 Android 系统性能也已经非常流畅 可以在体验上完全媲美 iOS 但是 到了各大厂商手里 改源码 自定义系统 使得 Android 原生系统变得鱼龙混杂 然后到了不同层次的开发工程师手里 因为技术水平的参差不齐 即使很多手机在跑分软件性能非常高 打开应用依然存在卡顿现象 另外 随着产品内容迭

    2026年3月20日
    2
  • ServletContextListener作用[通俗易懂]

    ServletContextListener作用[通俗易懂]ServletContext被Servlet程序用来与Web容器通信。例如写日志,转发请求。每一个Web应用程序含有一个Context,被Web应用内的各个程序共享。因为Context可以用来保存资源并且共享,所以我所知道的ServletContext的最大应用是Web缓存—-把不经常更改的内容读入内存,所以服务器响应请求的时候就不需要进行慢速的磁盘I/O了。Serv…

    2022年6月11日
    30
  • java中的inherits_node.js 下使用 util.inherits 来实现继承

    java中的inherits_node.js 下使用 util.inherits 来实现继承上一篇博客说到了 node js 继承 events 类实现事件发射和事件绑定函数 其中我们实现了一个公用基类 base 然后在模型中差异化的定义了各种业务需要的模型并继承 base 公共基类 但是其中的继承是一笔带过 今天详细的说下 node js 中继承 varevents require events varutil require util function base th

    2026年3月16日
    2
  • 腾讯云Lighthouse安装OpenClaw Skills及实践场景原创

    腾讯云Lighthouse安装OpenClaw Skills及实践场景原创

    2026年3月13日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号