jre 判断程序是否执行结束的标准是()
class ThreadDemo extends Thread{
public void run(){
System.out.println(Thread.currentThread().getName()+" : begin");
try{
Thread.sleep(2000);
}catch(Exception e){
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+" : end");
}
}
public class Test{
public static void main(String[] args){
System.out.println("test : begin");
Thread t = new ThreadDemo();
t.setDaemon(true);
t.start();
System.out.println("test : end");
}
}
/**
程序输出:
test : begin
test : end
Thread-0 :begin
运行结果中不会有Thread-0 : end,是因为,守护线程开启之后,中间睡了2s,这个时候又没有锁,主线程直接就执行完了,
一旦主线程结束,那么JVM中就只剩守护线程了,JVM直接就退出了,不管你守护线程有没有执行完。 */