守护线程
守护线程时一种特殊的线程,又称为陪伴线程
java中有两种线程:
1用户线程
2守护线程
Thread类提供isDaemon()区别两种线程,
false为用户线程
true为守护线程
java中典型的守护线程就是垃圾回收线程
只要当前JVM中存在任何一个用户线程没有线程,守护线程就在工作
只有当最后一个用户线程结束时,守护线程才会随着JVM停止工作
Thread类提供setDaemon():
将用户线程设置称为守护线程
举例:将子线程A设置成守护线程,子线程B和主线程默认是用户线程
package se.SE.practice;
class MyThread implements Runnable {
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+"是否为守护线程"+Thread.currentThread().isDaemon());
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
System.out.println(Thread.currentThread().getName()+"退出!");
return;
}
}
}
public class Thread1{
public static void main(String[] args) throws InterruptedException {
System.out.println("main线程开始");
MyThread myThread=new MyThread();
Thread thread=new Thread(myThread,"子线程A");
thread.setDaemon(true);
Thread thread1=new Thread(myThread,"子线程B");
thread.start();
thread1.start();
Thread.sleep(1000);
thread1.interrupt();//中断子线程B
System.out.println("main线程结束");
}
}
结果: