0
我有一个基于Grizzly NIO的简单服务器。我开始/关闭之后它如下,请注意附近的停止方法注释:由于并发失误,服务器没有正常关闭
public class MyServer {
public static void main(String[] args) {
try {
HttpServer server = GrizzlyHttpServerFactory.createHttpServer(URI.create("someURL"), resourceConfig, false);
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
server.shutdownNow();
}));
server.start();
Thread.currentThread().join();
server.shutdown(); //this line is never reached
} catch (IOException | InterruptedException ex) {
//exception handling
}
}
}
当我终止自server.shutdown()行立即获取关闭服务器永远不会达到,而不是优雅的方式。正如所说,我试图实现一个关闭挂钩,但它也没有被调用。我怀疑我的join()实现,但不确定。任何帮助实现优雅的关闭将不胜感激。
你会建议一个正确的机制来处理它吗? –
@johndoe我不明白你为什么在那里。你主要运行,不需要加入。 –
因为它是一个服务器实现,所以我使用Grizzly的API,我开始它然后想要优雅地关闭它。 –