java中线程分为守护线程和非守护线程。当非守护线程结束时,守护线程自动结束。
典型的守护线程就是垃圾回收线程。
示例:
package threadTestSHXC;
public class MyThread extends Thread{
private int i=0;
@Override
public void run() {
try{
while(true){
i++;
System.out.println("i= " + (i));
Thread.sleep(1000);
}
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
package threadTestSHXC;
public class Run {
public static void main(String[] args){
try{
MyThread thread=new MyThread();
thread.setDaemon(true);
thread.start();
Thread.sleep(5000);
System.out.println("main线程结束,守护线程结束,不再打印了 " );
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
结果:
i= 1
i= 2
i= 3
i= 4
i= 5
main线程结束,守护线程结束,不再打印了