源自JDK1.6
setDaemon
public final void setDaemon(boolean on)
-
将该线程标记为守护线程或用户线程。当正在运行的线程都是守护线程时,Java 虚拟机退出。
该方法必须在启动线程前调用。
该方法首先调用该线程的
checkAccess
方法,且不带任何参数。这可能抛出SecurityException
(在当前线程中)。 -
-
-
参数:
-
on
- 如果为true
,则将该线程标记为守护线程。
抛出:
-
IllegalThreadStateException
- 如果该线程处于活动状态。 -
SecurityException
- 如果当前线程无法修改该线程。
另请参见:
例子:
package com.thread.test;
public class DaemonThread implements Runnable {
public void run(){
while (true){
System.out.println(Thread.currentThread().getName()+"running");
}
}
public static void main(String[] args) {
DaemonThread test = new DaemonThread();
Thread demo = new Thread(test, "线程");
demo.setDaemon(true);
demo.start();
if(demo.isDaemon()){
System.out.println("是守护线程");
}
}
}
见上方红字,所以程序虽然是死循环,但是程序还是会退出的,只是到后台执行了~~
-