Daemon线程
Daemon线程也叫守护线程,是一种支持型线程,主要用于程序中后台调度以及支持性工作。
当一个Java虚拟机中不存在非Daemon线程的时候,jvm就会退出
可以通过Thread.setDaemon(true)
将线程设置为Daemon线程,该设置需要在启动线程前就设置,不然会报错。
实例如下:
package com.zyx.code4_5;
import com.zyx.code4_34.SleepUtils;
/**
* Daemon线程
* 在构建Daemon线程时,不能依靠finally块中内容来确保执行关闭或清理资源的逻辑
* @author zyx
* @date 2021/11/15 - 10:38
*/
public class Daemon {
public static void main(String[] args) {
Thread thread = new Thread(new DaemonRunner(),"DaemonRunner");
thread.setDaemon(true);
thread.start();
}
static class DaemonRunner implements Runnable{
@Override
public void run() {
try{
SleepUtils.second(10);
}finally {
System.out.println("DaemonThread finally run.");
}
}
}
}
运行结果:
注意:在构建Daemon线程时,不能依靠finally块中内容来确保执行关闭或清理资源的逻辑
–Java并发编程的艺术