首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSP多线程量化

JSP多线程量化
EN

Stack Overflow用户
提问于 2014-07-25 08:45:42
回答 1查看 773关注 0票数 0

我有一个Servlet,它从客户端获取一个请求,然后Servlet通过http请求/响应从5个不同的服务器收集数据(每个服务器都需要1秒来响应)并将数据发送回客户端。

问题是,当客户端必须等待6秒等待响应时,时间太长了。因此,对5台服务器的5次请求必须同时发送。

想法:

  1. Servlet中的多线程,类似于普通Java应用程序中的多线程。
  2. 每个服务器都有一个自己的Servlet (请求),这样一个主servlet就会对5个收集servlet说“获取数据xy”,而收集servlet将数据发送给主servlet和主servlet返回给客户端。

我担心的问题是,线程/servlet从另一个请求获得响应,因为它具有相同的时间和相同的ip。

如何解决这个问题?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2014-07-25 08:47:42

Servlet中的多线程

您可以使用ServletRequest#startAsync()方法将此请求置于异步模式,并使用原始(未包装) ServletRequest和ServletResponse对象初始化其AsyncContext。

阅读更多关于Servlet 3 0最终-规范-第2.3.3.3节-异步处理的详细说明。

AsyncContext是Servlet3.0规范中定义的异步处理HTTP请求的标准方法。

了解有关创建线程池的Executors.newFixedThreadPool()的更多信息,该线程池重用在共享无界队列上操作的固定数量的线程。在任何时候,最多的nThreads线程都是活动的处理任务。如果在所有线程都处于活动状态时提交了其他任务,它们将在队列中等待,直到线程可用为止。

请看一下ExecutorService,阅读更多关于它的示例代码。

阅读更多...

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24951627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档