守护线程详解_线程池任务队列

守护线程详解_线程池任务队列packagecom.lastinglate.concurrency.chapter4;publicclassDaemonThread{publicstaticvoidmain(String[]args)throwsInterruptedException{Threadt=newThread(){@Overridepublicvoidrun(){t

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

package com.lastinglate.concurrency.chapter4;

public class DaemonThread { 
   

    public static void main(String[] args) throws InterruptedException { 
   

        Thread t = new Thread() { 
   

            @Override
            public void run() { 
   
                try { 
   
                    System.out.println(Thread.currentThread().getName() + " running");
                    Thread.sleep(100_000);
                    System.out.println(Thread.currentThread().getName() + " done.");
                } catch (InterruptedException e) { 
   
                    e.printStackTrace();
                }
            }
        }; //new
      	t.setDaemon(true); // 必须放置在start之前
        t.start();


        Thread.sleep(5_000);   //JDK1.7
        System.out.println(Thread.currentThread().getName());
        // 如果未设置t.setDaemon(true);应用程序不会在5s退出,而是在100s之后才退出,因为main线程虽然不在了,但非守护线程Thread-0线程还在。
    }
}
t.setDaemon(true);

将线程T设置为守护线程,因为线程T为main线程创建(new出来),所以T线程为main的守护线程。
main线程生命周期结束之后,由main创建的守护线程T生命周期也跟着结束。

由谁创建线程,谁就是父线程,被创建的出来的线程就是子线程。setDaemon后,被创建的线程就是其父线程的守护线程,所以守护线程是子线程。

比如说,main线程创建了T线程,main线程就是父线程,T就是子线程,t.setDaemon(true)就是设置T线程(子线程)为main线程(父线程)的守护线程

用途:建立网络连接

守护线程(子线程)用于保持网络心跳,业务线程(父线程)用于进行业务处理,当业务线程退出,进行心跳的守护线程也退出。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
上一篇 2022年8月31日 上午11:36
下一篇 2022年8月31日 上午11:36


相关推荐

  • 全概率公式和贝叶斯公式分别用于什么场合_贝叶斯公式的例题

    全概率公式和贝叶斯公式分别用于什么场合_贝叶斯公式的例题1.全概率公式:首先建立一个完备事件组的思想,其实全概就是已知第一阶段求第二阶段,比如第一阶段分A、B、C三种,然后A、B、C中均有D发生的概率,最后让你求D的概率P(D)=P(A)*P(D|A)+P(B)*P(D|B)+P(C)*P(D|C)2.贝叶斯公式:其实原本应该叫逆概公式,为了纪念贝叶斯这样取名而已.在全概公式理解的基础上,贝叶斯其实就是已知第二阶段反推第一阶段,这时候关键是

    2025年7月11日
    3
  • mysql5.7 分区表_mysql分区表学习

    mysql5.7 分区表_mysql分区表学习一:怎样对已有数据的表进行表分区可以直接altertable进行修改。如:USEdba;ALTERTABLEt3PARTITIONBYRANGE(id)(PARTITIONp1VALUESLESSTHAN(5),PARTITIONp2VALUESLESSTHAN(10),PARTITIONp3VALUESLESSTHANmaxvalue);二:分区表的限制2…

    2022年5月11日
    65
  • vivo21a点击android版本,vivoX21适配安卓P系统

    许多小伙伴们应该都是知道最近即将推出的AndroidP系统吧,这个系统十分的强大,如果你使用的是vivoX21那么你就有福利了,你可以使用vivoX21AndroidP升级这个系统。AndroidPbeta是vivoX21适配安卓P系统的一个好的系统,你可以使用vivoX21AndroidP对自己的手机进行全面性的升级,让你的手机跟上步伐,走的更靠前!vivoX21Android…

    2022年4月8日
    282
  • 从天工超级智能体,到提示词工程的思考

    从天工超级智能体,到提示词工程的思考

    2026年3月15日
    2
  • 暗黑破坏神资源 – 紫冰整理

    暗黑破坏神资源 – 紫冰整理暗黑主程序下载地址:1.91G(动画音乐完成)[ftp://down801.uuu9.com:2213/pc/uuu9_Diablo2.rar]暗黑服务器架设工具:PVPGN1.61(D2CN提供)[http://www.d2cn.com/down/list.asp?id=447]在我发布这篇文章的时候PVPGN已经发布了1.85版PVPGN程序来源…

    2022年5月5日
    125
  • pycharmpip升级失败_如何更新pip版本

    pycharmpip升级失败_如何更新pip版本更新pip版本出错查看pip的版本时提示需要更新执行更新出错打开文件管理找到当前虚拟环境下的lib下的site-packages文件删除pip-18.0.dist-info文件然后回到命令行执行python-mpipinstall–index-urlhttps://pypi.douban.com/simple–upgradepip即可完成pip的更新…

    2025年7月2日
    5

发表回复

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

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