基础篇:Java守护线程

一、线程分类

  • User Thread:用户线程,一般的线程默认为用户线程。

  • Daemon Thread:守护线程,也称“服务线程”,在没有用户线程可服务时会自动结束。守护线程的优先级比较低,用于为系统中的其它对象和线程提供服务。通过Thread.setDaemon(true)设置为守护线程。

二、守护线程的作用

  • 任何一个守护线程都是整个JVM中所有非守护线程的守护者。只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM一同结束工作。虚拟机也就退出了。

三、应用

  • 垃圾回收线程就是一个经典的守护线程,当我们的程序中不再有任何运行的线程,程序就不会再产生垃圾,垃圾回收器也就无事可做,所以当垃圾回收线程是JVM上仅剩的线程时,垃圾回收线程会自动离开。它始终在低级别的状态中运行,用于实时监控和管理系统中的可回收资源。

四、备注

  • 守护线程中创建的线程默认为守护线程

  • 如果将守护线程中创建的线程显示设置为非守护线程(用户线程),那这个线程是守护线程还是用户线程

    • 答案:显示的设置是生效的,该线程为用户线程


欢迎关注“猪哥Java”



本文分享自微信公众号 - 猪哥Java(pig-python)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章