【问题标题】:Deciding number of threads in SOA Application (using Servlet)确定 SOA 应用程序中的线程数(使用 Servlet)
【发布时间】:2014-04-01 07:36:08
【问题描述】:

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

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

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

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

提前致谢。

【问题讨论】:

    标签: java multithreading servlets cpu


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-10-17
      • 1970-01-01
      • 2012-07-26
      • 2023-03-20
      • 2013-10-08
      • 2010-10-21
      • 1970-01-01
      • 2018-05-20
      • 2019-06-05
      相关资源
      最近更新 更多