前台线程和后台线程
前台线程:前台线程如果不运行结束的话,Java进程是一定不会结束的。前台线程有很多个,最后一个线程结束时,进程才会结束。
后台线程/守护线程:后台线程即使再继续执行,也不能影响进程结束。
程序员手动创建的为前台线程
public class Demo5 {
public static void main(String[] args) {
Thread t=new Thread(()->{
for (int i = 0; i < 5; i++) {
System.out.println(i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
});
//设置后台线程 (放在start前使用)
//设置后 该程序中只有main一个前台线程,main走完之后程序就退出了
t.setDaemon(true);
t.start();
}
}
调用setDemo方法并给参数true时,该程序的前台线程有Thread和main两个,程序会在控制台打印五次才退出。
不调用时,只有main一个线程执行,打印0次,执行后进程结束;也可能打印一次一次t,因为程序是抢占式执行的,可能先打印t,再去执行main线程。