【发布时间】:2014-04-01 07:36:08
【问题描述】:
我有一个由许多 servlet 组成的 SOA 应用程序。当客户端提交请求时,我的应用程序连接到 4 个外部应用程序,在它们之间交换数据并提供结果。
现在,由于这 4 个连接,请求的响应会大大延迟。因此,我们计划将这 4 个调用分离到线程中,以便主线程可以快速回复说“我们正在处理您的数据”。
问题是,我应该为这些任务启动多少线程?我可以在一个线程中完成所有任务,而不是 4 个不同的线程。最优解是什么?
另外,什么对 CPU 影响最大?线程数或特定线程执行持续时间的长度? 我的应用程序每秒接收 5 到 7 个请求。那么,什么会更好呢?每个请求 1 个独立(且运行时间更长)线程或 4 个独立(但运行时间更短)线程?
提前致谢。
【问题讨论】:
标签: java multithreading servlets cpu