为什么在嵌入式 Jetty 中使用 server.join()

问题描述 投票:0回答:1

使用嵌入式 Jetty 服务器,我不确定 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();
    }

我知道这个问题已经被问过here,但接受的答案有

-6
赞成票,所以我认为值得再次询问。

java multithreading jetty embedded-jetty
1个回答
3
投票

调用

server.start()
Server
启动一个新线程。

调用

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

这是正常的

java.lang.Thread.join()
行为。

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

如果您在

server.join()
之后执行了某个操作,您会发现它在服务器线程完成之前不会执行。 (通常是由于正常关闭操作)。

© www.soinside.com 2019 - 2024. All rights reserved.