演员在前台演戏,许多事情职员在后台为演员供应做事,例如准备演出的服装和道具。
同样的,后台线程指的是为其他线程供应做事的线程,也叫守护线程。
Java虚拟机的垃圾回收线程是范例的后台线程,它卖力回收其他线程不再利用的内存。

后台线程的特点

后台线程与前台线程相伴相随,只有当所有前台线程结束生命周期后,后台线程才会结束生命周期。
只要有一个前台线程还没有运行结束,后台线程就不会结束生命周期。

主线程默认情形下是前台线程,由前台线程创建的线程默认情形下也是前台线程。
调用Thread类的setDaemon(true)方法,就能把一个线程设置为后台线程。
Thread类的isDaemon()方法用来判断一个线程是否是后台线程。

php后台线程多线程之后台线程 JavaScript

下面的示例代码中,machine线程作为后台线程,一直的按行输出“macine”

public class Machine extends Thread{

public void run() {

while (true)

System.out.println(\"大众macine\"大众);

}

public static void main(String[] args) throws InterruptedException {

Machine machine=new Machine();

machine.setDaemon(true);

machine.start();

System.out.println(\公众main end\公众);

}

}

只管machine现场的run()方法时无限循环,但只要其他线程都运行结束,Java虚拟机就会终止这个后台线程。

利用后台线程的把稳点Java虚拟机所能担保的是:当前台线程运行结束,如果后台线程还在运行,Java虚拟机会终止后台线程。
此外,后台线程是否一定在前台线程的后面结束生命周期,还取决于程序实现,只有在线程启动前(即调用start()方法前),才能把它设置为后台线程。
如果线程启动后,再调用setDaemon()方法,就会抛出IllegalThreadStateException非常。
由前台线程创建的线程默认情形下仍旧是线程,由后台线程创建的线程仍旧是后台线程。

目录:Java知识目录