【Java面试】什么是守护线程,它有什么特点

发布时间:2023-03-01 17:30

Hi,大家好,我是Mic

一个工作了3年的粉丝,在面试的时候遇到一个线程相关问题。

想让我帮他解答一下。

问题是,“什么是守护线程,它有什么特点”

下面看看高手的回答。

高手:

好的。

守护线程,它是一种专门为用户线程提供服务的线程,它的生命周期依赖于用户线程。

只有JVM中仍然还存在用户线程正在运行的情况下,守护线程才会有存在的意义。

否则,一旦JVM进程结束,那守护线程也会随之结束。

也就是说,守护线程不会阻止JVM的退出。但是用户线程会!

守护线程和用户线程的创建方式是完全相同的,我们只需要调用用户线程里面的setDaemon方法并且设置成true,

就表示这个线程是守护线程。

因为守护线程拥有自己结束自己生命的特性,所以它适合用在一些后台的通用服务场景里面。

比如JVM里面的垃圾回收线程,就是典型的使用场景。

这个场景的特殊之处在于,当JVM进程技术的时候,内存回收线程存在的意义也就不存在了。

所以不能因为正在进行垃圾回收导致JVM进程无法技术的问题。

但是守护线程不能用在线程池或者一些IO任务的场景里面,因为一旦JVM退出之后,守护线程也会直接退出。

就会可能导致任务没有执行完或者资源没有正确释放的问题。

以上就是我对这个问题的理解。

总结

这个问题,大部分工作年限比较长的同学也不一定能回答上来。

首先线程这个领域在业务开发中本身使用就比较少

而守护线程接触就更少了。

我始终认为,只有积累足够多的技术,才能更从容的应对未来长远的职业发展。

喜欢我作品的小伙伴,记得点赞收藏加关注。

file

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Mic带你学架构
如果本篇文章对您有帮助,还请帮忙点个关注和赞,您的坚持是我不断创作的动力。欢迎关注同名微信公众号获取更多技术干货!

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号