确定SOA应用程序中的线程数(使用Servlet)

时间:2014-04-01 07:36:08

标签: java multithreading servlets cpu

我有一个由许多servlet组成的SOA应用程序。当客户端提交请求时,我的应用程序连接到4个外部应用程序,在它们之间交换数据并提供结果。

现在,由于这4个连接,请求的响应会大大延迟。因此,我们计划将这4个调用分成线程,以便主线程可以快速响应,说“我们正在处理您的数据”。

问题是,我应该为这些任务启动多少线程?我可以在一个线程中执行所有任务,而不是4个不同的线程。什么是最佳解决方案?

另外,最影响CPU的是什么?线程数或特定线程执行持续时间的长度? 我的应用程序每秒收到5到7个请求。那么,哪个更好?每个请求有1个单独(和更长时间运行)的线程或4个独立(但运行时间较短)的线程?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您应该启动的线程数取决于您拥有的独立任务的数量。您拥有的任务/模块/功能(无论您调用的)越多,您可以为每个任务/模块启动的线程越多。基于要同时完成的独立工作,您需要知道应该使用多少线程以及如何有效地利用它们

  

最影响CPU的是什么?线程数或特定线程执行持续时间的长度?   

这似乎是一个微不足道的问题。两者都会起作用。也许不吧。取决于您拥有的应用程序/代码。但这应该不是问题。