在Tomcat/Jetty中进行多线程的正确方法

Sou*_*nta 3 java multithreading tomcat jetty

这是我的用例.

  1. 客户端向服务器发送请求.
  2. 服务器需要执行以下2.a. 进行网络呼叫以获取一些数据(D).
    2.B. 创建处理器(P)以处理数据.
  3. P处理D并将响应发送回客户端

创建处理器很昂贵(大约1-3秒).但它不依赖于数据D.

我的计划是使用两个不同的线程并行执行网络调用和处理器创建.

我从未在app服务器中完成多线程编程.我的问题是在应用服务器(特别是Tomcat和Jetty)中处理线程的最佳方法是什么

谢谢.

Pét*_*rök 5

IMO你最好的选择是使用Executor框架.这使得处理并发变得更加容易.

这里有几个 教程可以帮助您入门.

您的代码在诸如Tomcat之类的Web容器中运行这一事实不应该让您感到烦恼.这意味着处理请求的实际线程实际上是一个工作线程,取自应用服务器本身管理的线程池.但是,只要你自己的线程干净地完成它们的工作(即只修改限制在这个实际请求中的数据并且不干扰其他外部线程),并且它们同时没有太多,所有内容都应该没事的.