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方法