首页 > 解决方案 > 为什么在 Embedded Jetty 中使用 server.join()

问题描述

使用 Embedded Jetty,我不明白是什么server.join()

如果我删除它,什么也不会发生,我的服务器继续工作并继续服务请求。

有什么server.join()作用?如果我删除它会发生什么?在什么情况下我想拥有它?

这是来自官方 Jetty 文档的示例:


    public static void main(String[] args) throws Exception
    {
        int port = ExampleUtil.getPort(args, "jetty.http.port", 8080);
        Server server = new Server(port);
        server.setHandler(new HelloWorld());

        server.start();
        server.join();
    }

我知道这个问题已经在这里问过了,但接受的答案有-6赞成票,所以我认为值得再问一次。

标签: javamultithreadingjettyembedded-jetty

解决方案


该调用server.start()Server.

该调用server.join()是让当前线程等待服务器完成,然后再对其线程执行下一步。

这是正常java.lang.Thread.join()行为。

简而言之,它使当前线程等待它被要求加入的线程结束。

如果你有一个动作,server.join()你会看到它在服务器线程完成之前不会执行。(通常是由于优雅的关闭操作)。


推荐阅读