繁体   English   中英

为什么SpringApplication在启动后不立即终止?

[英]Why doesn't SpringApplication terminate immediately after it starts?

这是一个典型的SpringApplication实例:

public class MyService {
    public static void main(String[] args) throws Exception {
        SpringApplication app = new SpringApplication(MyService.class);
        ApplicationContext ctx = app.run(args);
    }
}

由于app.run(args)是非阻塞调用,因此此应用程序的main方法在调用后立即返回。 我一直认为,当您从main返回时,应用程序会终止。

即使我们已经退出main了,为什么SpringApplication仍继续运行?

当最后一个非守护线程完成时, JVM终止。 您的应用程序似乎正在创建不终止的线程。

在Unix上,您可以通过发送信号3( kill -3 <java-pid> )来获取输出的线程转储 ,从而找出线程的状态。 那可以告诉你更多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM