java main()线程是不是最后一个退出的(相比较main中创建的其他多个线程)

  1. JVM会在所有的非守护线程(用户线程)执行完毕后退出;
  2. main线程是用户线程;
  3. 仅有main线程一个用户线程执行完毕,不能决定JVM是否退出,也即是说main线程并不一定是最后一个退出的线程。
    public class MainThreadTest {  
       
        public static void main(String[] args) {  
            new Timer().schedule(new TimerTask(){  
       
                @Override  
                public void run() {  
                    System.out.println("Timer thread is running...");  
                }  
       
            }, 500, 500);  
       
            System.out.println("Main thread ends!");  
        }  
    } 

    如何使main最后退出呢:(join方法)

  4. 在一个线程中启动另外一个线程的join方法,当前线程将会挂起,而执行被启动的线程,知道被启动的线程执行完毕后,当前线程才开始执行。
  5. 带参数的join,表示 超过参数时间后 ,主线程继续执行。之后,主线程和子线程交互执行。
原文地址:https://www.cnblogs.com/hongchengshise/p/10406136.html