首页 > 编程语言 > 详细

java守护线程

时间:2019-10-10 12:09:41      阅读:58      评论:0      收藏:0      [点我收藏+]

Java提供两种类型的线程:用户线程和守护程序线程。

用户线程是高优先级线程。JVM将在终止任务之前等待任何用户线程完成其任务。

守护线程是低优先级线程,其唯一作用是为用户线程提供服务。

由于守护线程旨在为用户线程提供服务,并且仅在用户线程运行时才需要,因此它们都不会退出JVM,直到所有用户线程执行完成。

这就是为什么通常存在于守护线程中的无限循环不会导致问题,因为任何代码(包括finally块)都不会在所有用户线程完成执行后执行。因此,不建议将守护线程用于I / O任务。

但是,这条规则有例外。守护线程中设计糟糕的代码可能会阻止JVM退出。例如,在正在运行的守护线程上调用Thread.join()可以阻止应用程序的关闭。

 

守护线程对于后台支持任务非常有用,例如垃圾收集,释放未使用对象的内存以及从缓存中删除不需要的条目。大多数JVM线程都是守护线程。

要将线程设置为守护线程,我们需要做的就是调用Thread.setDaemon() 方法 ,必须在start()方法之前 

NewThread daemonThread = new NewThread();
daemonThread.setDaemon(true);
daemonThread.start();

要检查一个线程是否是一个守护程序线程,我们可以简单地调用方法isDaemon()

java守护线程

原文:https://www.cnblogs.com/qin1993/p/11647107.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!