gpt4 book ai didi

java - 为什么JVM需要退出?

转载 作者:行者123 更新时间:2023-12-01 17:00:49 24 4
gpt4 key购买 nike

我正在研究“what is deamon thread in java

它提到“守护线程是一个线程,当程序完成但线程仍在运行时,它不会阻止JVM退出”。

我的后续问题是为什么 JVM 需要退出,或者不退出?到底是怎么回事?我认为JVM一直在运行。这是真的吗?我为什么要关心 JVM 正在做什么?

最佳答案

public class Example{
public static void main(String[] args){
System.out.println("Hi!");

// What's happening here?
}
}

看看评论,说明这里发生了什么?那里发生了什么?当你的程序即将完成时,JVM 就会退出。 java虚拟机的存在时间与你的程序一样长,它在你的程序启动时启动,在你的程序结束时结束。

现在如果我们考虑:

public class Example{
public static void main(String[] args){
System.out.println("Hi!");

Thread t = new Thread(new Runnable(){
public void run(){
try{
Thread.sleep(Long.MAX_VALUE);
}catch(InterruptedException ex){}
}
});

t.start();

// What's happening here?
}
}

评论存在时会发生什么。答案是什么。由于另一个线程仍处于 Activity 状态并且是非守护进程,因此程序将继续运行(因此 JVM 不会退出)。结束它的唯一方法是完成 sleep 或手动终止运行应用程序的进程。

用最简单的术语(如果你是迂腐的话,这并不完全正确),Java 应用程序的 JVM 的运行生命周期可以等同于应用程序本身的运行生命周期。在大多数情况下,您可以用术语 JVM 代替“我的应用程序”,不会有太大问题。

希望能够解决这个问题。

关于java - 为什么JVM需要退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27674724/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com