在 Java 语言中线程分为两类:用户线程和守护线程,而二者之间的区别却鲜有人知,所以本文磊哥带你来看二者之间的区别,以及守护线程需要注意的一些事项。
1.默认用户线程
Java 语言中无论是线程还是线程池,默认都是用户线程,因此用户线程也被称为普通线程。
以线程为例,想要查看线程是否为守护线程只需通过调用 isDaemon()
方法查询即可,如果查询的值为 false
则表示不为守护线程,自然也就属于用户线程了,如下代码所示:
public static void main(String[] args) throws InterruptedException { Thread thread = new Thread(new Runnable() { @Override public void run() { System.out.println("我是子线程"); } }); System.out.println("子线程==守护线程:" + thread.isDaemon()); System.out.println("主线程==守护线程:" + Thread.currentThread().isDaemon()); }
以上程序的执行结果为:
从上述结果可以看出,默认情况下主线程和创建的新线程都为用户线程。
PS:Thread.currentThread() 的意思是获取执行当前代码的线程实例。