Daemon:(守护)线程主要用于程序中后台调度以及支持性工作,如垃圾回收线程等。当JVM中仅剩下Daemon线程时,JVM将会退出。
Thread:定义线程对象时,应给其指定名称,方便分析和排查问题。线程对象初始化时,部分属性默认来自于当前线程,即父前程,如优先级、群组、daemon等。
public static void main(String[] args) throws InterruptedException {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("==============");
}
}, "TestThread");
thread.setDaemon(true);//需在start()前调用
thread.start();
}
中断线程:
Thread.interrupted(),设置当前线程的中断状态标示位为true。阻塞函数,如:Thread.sleep、Thread.join、Object.wait、LockSupport.park等在检查到线程的中断状态时,会抛出InterruptedException,同时会清除线程的中断状态,即将其设置为false
通过【线程对象.isInterrupted()】来判断线程的中断状态。注意:如果线程已经运行结束,则中断状态为false。
-
参考:关于Java的Daemon线程的理解
参考:java线程中的interrupt,isInterrupt,interrupted方法