如何分配线程来处理 Servlet 请求?

2024-01-08

有人可以解释一下什么是每个请求线程和每个连接线程吗? servlet 适用于哪种模型?如何分配线程来处理 HTTP 请求?是线程/请求还是连接?

假设我想在我的计算机中执行一项耗时的任务Servlet's doGet()方法异步,我使用 Java 执行器启动一个新线程,以便在单独的线程中完成冗长的计算并立即发送响应。

现在这是否确保我已经释放了一直在处理我的线程HttpServletRequest或者它仍然被使用,因为子线程仍在运行?


每个请求意味着当发出 HTTP 请求时,会创建一个线程或从池中检索一个线程来为其提供服务。一个线程处理整个请求。每个连接的线程是相同的,只是该线程用于整个连接,这可能是多个请求,并且请求之间也可能有很多死区时间。 Servlet 容器是每个请求的线程。可能有一些实现为每个连接提供线程,但我不知道,而且看起来这会非常浪费。

在另一个线程中创建一个线程不会建立任何特殊关系,在大多数情况下这样做的全部目的是让一个线程执行更多工作或在另一个线程继续工作时终止。在您的场景中,使用不同的线程来完成请求所需的工作将如您所料,允许立即发送响应。用于服务该请求的线程也将立即可用于另一个请求,无论其他线程需要多长时间才能完成。这差不多了the在每个请求一个线程的 servlet 容器中执行异步工作的方法。

Caveat:如果您处于完整的 Java EE 容器中,则可能会以某种方式为您管理线程,这使得生成您自己的线程成为一个坏主意。在这种情况下,您最好向容器请求线程,但一般原则是相同的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何分配线程来处理 Servlet 请求? 的相关文章

  • Google 地图查询返回的 JSON 包含像 \x26 这样的编码字符(如何解码?)

    在 Java 应用程序中 我获取 JSON 来自 Google 地图 其中包含以下字符 x26我想将其转换为其原始字符 据我所知 这是一个 UTF 8 表示法 但我不完全确定 在源 JSON 中 可能会出现各种编码字符 例如 x3c div
  • 如何从另一个xml文件动态更新xml文件?

    我想从另一个 xml 文件更新 xml 文件 我使用了一个 xml 文件 如下所示 one xml
  • 如何解决 onEditCommit 事件上的类型不匹配错误?

    我在 Fxml 中使用 onEditCommit 事件在用户编辑数据后检索数据 FXML 代码
  • Google Inbox 类似 RecyclerView 项目打开动画

    目前 我正在尝试实现 Google Inbox 例如RecyclerView行为 我对电子邮件打开动画很好奇 我的问题是 该怎么做 我的意思是 他们使用了哪种方法 他们用过吗ItemAnimator dispatchChangeStarti
  • Java 重写 hashCode() 得到 StackOverflowError

    所以我不太熟悉重写 hashCode 并且我似乎在 hashCode 方法中以某种方式进行了一些无限递归 这是我的场景 我有一个 DuplicateCache 类 它是一个缓存对象 用于检查系统中的重复对象 我有一个静态内部类 Duplic
  • 如何将 Spotlight for Help 插入本地化的 macOS 应用程序?

    我正在 macOS 上使用 Swing GUI 框架实现 Java 应用程序 当使用system外观和感觉以及screen菜单栏 Swing 自动插入一个搜索栏 called 聚光灯寻求帮助 https developer apple co
  • JavaFX - setVisible 隐藏元素但不重新排列相邻节点

    在 JavaFX 中 如果我有一个场景有 2VBox元素和每个VBox有多个Label in it 如果我设置顶部VBox to 无形的 为什么底部VBox 不向上移动顶部的场景VBox was The VBox is 无形的但我希望其他物
  • 优化 Keras 以使用所有可用的 CPU 资源

    好吧 我真的不知道我在说什么 所以请耐心听我说 我正在使用 Theano 后端运行 Keras 以在 MNIST 图像上运行基本的神经网络 目前只是一个教程 过去 我一直使用我的旧 HP 笔记本电脑 因为我有 Windows 和 Ubunt
  • spring - 强制 @Autowired 字段的 cglib 代理

    我有混合堆栈 EJB 和 Spring 为了将 Spring 自动装配到 EJB 我使用SpringBeanAutowiringInterceptor 不确定这是否会影响我遇到的问题 在尝试通过以下方式自动装配 bean 时 Scope p
  • 所有junit测试后的清理

    在我的项目中 我必须在所有测试之前进行一些存储库设置 这是使用一些棘手的静态规则来完成的 然而 在所有测试之后我不知道如何进行清理 我不想保留一些神奇的静态数字来引用所有测试方法的数量 我应该一直维护它 最受赞赏的方法是添加一些侦听器 该侦
  • Java替换特定字符

    这是我在这个网站上的第一个问题 所以我会尽量不要成为一个十足的菜鸟 我目前正在用java 创建刽子手游戏 所以我问你的问题是我们是否被赋予了 幽灵 这个词 并将 Ghost 替换为 hiddenWord ghost length for i
  • 使用 Guava 联合两个 ImmutableEnumSets

    我想联合两个ImmutableEnumSets来自番石榴 这是我的尝试 public final class OurColors public enum Colors RED GREEN BLUE YELLOW PINK BLACK pub
  • 如何在没有 Control.Invoke() 的情况下从后台线程修改控件属性

    最近 我们遇到了一些旧版 WinForms 应用程序 我们需要更新一些新功能 在专家测试该应用程序时 发现一些旧功能被破坏 无效的跨线程操作 现在 在您认为我是新手之前 我确实有一些 Windows 窗体应用程序的经验 我不是专家 但我认为
  • tomcat 过滤所有 web 应用程序

    问题 我想对所有网络应用程序进行过滤 我创建了一个过滤器来监视对 apache tomcat 服务器的请求 举例来说 它称为 MyFilter 我在 netbeans 中创建了它 它创建了 2 个独立的目录 webpages contain
  • 从 Java 日历迁移到 Joda 日期时间

    以前 当我第一次设计股票应用相关软件时 我决定使用java util Date表示股票的日期 时间信息 后来我体会到了大部分方法java util Date已弃用 因此 很快 我重构了所有代码以利用java util Calendar 然而
  • 从 Stax XMLStreamReader 读取以解组部分

    我正在使用 Stax 游标 API 从大型 xml 文件中提取数据 当前 我转到特殊标签的开头并使用 JAXB 解组该标签 这对于格式良好的 xml 文件效果很好 但不久前我有一个文档 其中数十万个标签中有一个未关闭 JAXB 使用 XML
  • ExceptionHandler 不适用于 Throwable

    我们的应用程序是基于 Spring MVC 的 REST 应用程序 我正在尝试使用 ExceptionHandler 注释来处理所有错误和异常 I have ExceptionHandler Throwable class public R
  • 如何在android sdk上使用PowerMock

    我想为我的 android 项目编写一些单元测试和仪器测试 然而 我遇到了一个困扰我一段时间的问题 我需要模拟静态方法并伪造返回值来测试项目 经过一些论坛的调查 唯一的方法是使用PowerMock来模拟静态方法 这是我的 gradle 的一
  • Path2D 上的鼠标指针检测

    我构建了一个Path2D http docs oracle com javase 7 docs api java awt geom Path2D html表示由直线组成的未闭合形状 我希望能够检测何时单击鼠标并且鼠标指针靠近路径 在几个像素
  • 从一个文本文件中获取数据并将其移动到新的文本文件

    我有一个文件 里面有数据 在我的主要方法中 我读入文件并关闭文件 我调用另一种方法 在原始文件的同一文件夹内创建一个新文件 所以现在我有两个文件 原始文件和通过我调用的方法生成的文件 我需要另一种方法 从原始文件中获取数据并将其写入创建的新

随机推荐

  • __init__() 应该调用父类的 __init__() 吗?

    我在 Objective C 中使用过 我有这样的构造 void init if self super init init class return self Python 是否也应该调用父类的实现 init class NewClass
  • 错误:(40, 28) 找不到与给定名称匹配的资源(在“value”处,值为“@integer/google_play_services_version”)

    我仍然无法解决这个问题 在我的 androidManifest xml 中我有 我在 android studio 工作 但仍然找不到任何答案 请帮忙 这是显示地图片段
  • WiX 将引导 x86 和 x64 msi 刻录到单个无 UI 引导程序中

    我的安装程序 msi 有 x64 和 x86 版本 并且想要发布一个可执行文件来简单地检查机器架构并运行 x86 x64 MSI MSI 基本相同 它们安装相同的 AnyCPU 文件 我将其捆绑在共享的 cab 文件中 以免安装程序的大小增
  • 接收到的 PowerShell 事件不按顺序排列

    这听起来像是一种合理的期望 即从一个线程触发的事件应该按照触发的顺序接收 然而 情况似乎并非如此 这是已知 记录的行为吗 是否有办法纠正它 下面是两个可立即运行的代码片段 它们显示了该问题 并在 Win7 和 Win10 下使用 PS v5
  • ListView距列表顶部的距离

    我有一个ListView 我想制作一个随列表滚动的背景 我看到了代码Shelves http code google com p shelves source browse trunk Shelves src org curiouscrea
  • 从vba中的write语句中删除双引号

    此代码将日志文件写入 LogFilePath 并生成如下输出 StarRange 和 EndRange 是一个变量 其值将从其他函数填充 Start postion A1 End position B100 Code Sub WriteLo
  • SVN:递归添加

    我正在尝试从我的工作副本中的 SVN 文件夹中添加新的项目文件 它询问选项 递归 并显示消息 您确定要添加 许多项目 有人可以指导我启用此 递归 选项有什么用吗 当我新添加新项目文件时我是否应该启用它 谢谢 简洁版本 svn add for
  • 如何用ggplot对齐两个图?

    我试图使用对齐两个图grid但没有成功 我尝试调整主题 使绘图边框 大小相同 但尽管使用相同的 y 坐标 但绘图并未对齐 对于下面的例子我可以使用annotation custom 网站上有一些示例 但这限制了我可以添加的文本数量 如有任何
  • Visual Studio 2015 无法启动

    我们已经在 Windows 7 上安装了 Visual Studio 2015 Professional 它运行良好 但是今天我们从菜单 工具 gt 扩展和更新 安装更新后 Visual Studio 不再启动 我们也尝试使用 以管理员身份
  • Asp .Net Core Web API 在哪里订阅 RabbitMQ

    我正在尝试使用 Web API 和 Rabbit MQ 消息代理来实现发布 订阅架构 我的解决方案中有两个项目 发布者和订阅者 发布正在成功实施 但我在我的网站中找不到位置 订阅者项目从队列中读取已发布的消息 我的两个项目都是 Net Co
  • 从 XML 数据反序列化数组(在 ServiceStack 中)

    我有以下 XML 数据块
  • 使用钩子检测 React 组件外部的点击

    我发现我正在跨应用程序重用行为 当用户单击元素外部时我可以隐藏它 随着钩子的引入 我是否可以将其放入钩子中并在组件之间共享 以节省我在每个组件中编写相同的逻辑 我已经在组件中实现了一次 如下所示 const Dropdown gt cons
  • Bootstrap 表 - 如何访问数据源对象中的内部元素

    假设我的数据源对象看起来像这样 id 123 name blabla1 kids id kid1 name kk1 id 456 name blabla2 kids id kid2 name kk2 这是一个包含 2 个对象的列表 数组 每
  • Java 9:在 Eclipse 中无法访问模块 java.xml.bind

    我将 Maven 项目迁移到Java 8 to a Java 9没有任何构建工具的项目Eclipse OxyGen 1a So my 模块信息 java看起来像这样 但是 java xml bind 无法访问 尽管它在我的模块路径中 那么这
  • 将基于 Java 的 API 与 Django 结合使用

    我正在使用 Django 创建一个网站 并希望将 Google Play 商店 Android Market 中的数据合并到其中 我考虑过手动抓取商店 但看起来这可能是一个缓慢而乏味的过程 所以我决定考虑其他选项 即一个名为android
  • 将 /var/run/docker.sock 挂载到容器中时,使用哪个文件系统进行卷挂载?

    我有一个容器 其中包含用于协调主机上微服务部署的逻辑 让我们将此服务称为deployer 为了实现这一目标 我安装了 var run docker sock文件从主机到那个deployer容器 所以 表演的时候docker run hell
  • Spring BeanPostProcessor 究竟是如何工作的?

    我正在学习 Spring Core 认证 我对 Spring 如何处理这些问题有一些疑问Bean 生命周期特别是关于Bean 后处理器 所以我有这个架构 我很清楚这意味着什么 以下步骤发生在加载 Bean 定义 phase The 配置类被
  • 如何在 Visual Studio 2008“Pro”中进行性能分析

    微软将这款软件称为 Visual Studio 2008 Professional 我发现其中似乎没有应用程序性能分析器或类似的东西 这使得它对我来说似乎不那么 专业 如果 Microsoft 不包含分析器 您有哪些第三方选项可以用于 Vi
  • 数据仓库中的时间和日期维度

    I m building a data warehouse Each fact has it s timestamp I need to create reports by day month quarter but by hours to
  • 如何分配线程来处理 Servlet 请求?

    有人可以解释一下什么是每个请求线程和每个连接线程吗 servlet 适用于哪种模型 如何分配线程来处理 HTTP 请求 是线程 请求还是连接 假设我想在我的计算机中执行一项耗时的任务Servlet s doGet 方法异步 我使用 Java