这是我的用例。
- 客户端向服务器发送请求。
- 服务器需要做以下2.a。进行网络调用以获取一些数据 (D)。
2.b。创建一个处理器 (P) 来处理数据。 - P 处理 D 并将响应发送回客户端
创建处理器很昂贵(大约 1-3 秒)。但它不依赖于数据 D.
我的计划是使用两个不同的线程并行执行网络调用和处理器的创建。
我从未在应用服务器中进行过多线程编程。我的问题是处理应用程序服务器(特别是 Tomcat 和 Jetty)中的线程的最佳方法是什么
谢谢。
这是我的用例。
创建处理器很昂贵(大约 1-3 秒)。但它不依赖于数据 D.
我的计划是使用两个不同的线程并行执行网络调用和处理器的创建。
我从未在应用服务器中进行过多线程编程。我的问题是处理应用程序服务器(特别是 Tomcat 和 Jetty)中的线程的最佳方法是什么
谢谢。
Tomcat 7 支持 Servlet 3.0 并且它是异步 servlet - 它维护自己的线程池并提供标准 API 以在单独的线程中执行请求。您可以在此处查看示例:Tomcat 7 中的异步 Servlets
如果创建处理器 (P) 的成本很高,您能否像创建数据库连接池一样预先创建一个 P 实例池并重新使用它们?
Apache Commons Pool 项目可以为您提供一个起点。