Skip to Content

Java守护线程

用户线程: 也叫工作线程,当线程的任务执行完或通知方式结束

守护线程: 一般为工作线程服务的,当所有的用户线程结束,守护线程自动结束。

常见的守护线程:垃圾回收机制

在java中,每次程序运行至少启动2个线程。一个是main线程,一个是垃圾收集线程。因为每当使用java命令执行一个类的时候,实际上都会启动一个JVM,每一个JVM其实在就是在操作系统中启动了一个进程。

场景: 设置守护线程。

public class ThreadTest { public static void main(String[] args) throws InterruptedException { T t = new T(); Thread thread = new Thread(t); // 设置为守护线程,这样,主线程结束后,守护线程也就结束了 thread.setDaemon(true); // 开启线程,先设置,后开启 thread.start(); for (int i = 0; i < 5; i++) { System.out.println("主线程的吃东西...." + i); Thread.sleep(1000); } } } class T implements Runnable { @Override public void run() { // 死循环,如果不设置为守护线程,该循环不会停下 for (; ; ) { System.out.println("子线程的吃东西...."); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }

可以看到,主线程结束后,子线程哪怕是死循环,也会结束

Last updated on