java并发--Daemon后台线程的使用
后台线程提供一种通用的线程服务,这个线程并不属于程序中不可或缺的部分。所以,当所有的非后台线程结束时,程序也就终止了,同时也杀死了所有的后台线程。
所以后台线程不一定会运行完。
import java.util.concurrent.TimeUnit; /** * 后台线程 * @author Administrator * */ public class DaemonDemo implements Runnable { @Override public void run() { try { while (true) { TimeUnit.MILLISECONDS.sleep(100);// 线程sleep System.out.print(Thread.currentThread() + "" + this); } } catch (InterruptedException e) { e.printStackTrace(); } } public static void main(String[] args) { for (int i = 0; i < 10; i++) { Thread daemon = new Thread(new DaemonDemo()); daemon.setDaemon(true);//设置为后台线程 daemon.start(); } } }
所以这个demo是不会输出任何的数值,因为线程先sleep 100ms,main方法运行完就杀死了所有后台线程。