使用嵌入式 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
赞成票,所以我认为值得再次询问。
调用
server.start()
为 Server
启动一个新线程。
调用
server.join()
是让当前线程等待服务器完成,然后再在其线程上执行下一步。
java.lang.Thread.join()
行为。
简而言之,它使当前线程等待它被要求加入的线程的结束。
如果您在
server.join()
之后执行了某个操作,您会发现它在服务器线程完成之前不会执行。 (通常是由于正常关闭操作)。