java - 为什么在 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
赞成票,所以我认为值得再问一次。
解决方案
该调用server.start()
为Server
.
该调用server.join()
是让当前线程等待服务器完成,然后再对其线程执行下一步。
这是正常java.lang.Thread.join()
行为。
简而言之,它使当前线程等待它被要求加入的线程结束。
如果你有一个动作,server.join()
你会看到它在服务器线程完成之前不会执行。(通常是由于优雅的关闭操作)。
推荐阅读
- javascript - React Native flatlist 多次渲染
- html - Flex 容器可单击,左侧为图像,右侧为文本居中
- nginx - 更改 Nginx 根目录时出现 403 GIven
- django - 使用 Docker 将 Django 代码部署到没有 ECS 的 AWS EC2 实例
- django - 在 Django Api 上部署
- c++ - 将函数参数更改为全局变量会导致意外结果
- javascript - 在反应js中显示当月所有剩余天数
- optimization - 计算 [1..N] 中前导 1 以下 K 个零位的整数?(没有 HW POPCNT 的连续范围的 popcount)
- vue.js - 从 Vue Router 导航栏生成一个完全空白的页面
- javascript - 如何以 Thymeleaf 形式更新“th:field”?