2014-04-01 75 views
-1

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

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

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

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

在此先感谢。

回答

0

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

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

这似乎是一个微不足道的问题。两者都会影响。也许不会。取决于你的应用程序/代码。但这不应该是一个问题。