JAVA:Web应用程序中的多线程代码的影响

时间:2019-02-14 09:12:22

标签: java performance application-server

在企业后端Java应用程序中,我有一个要求,其中一部分代码调用彼此独立的各种API。收到响应后,我就在利用它们并将数据传递给请求者。

为此,我实现了基于可调用的多线程(使用Executor)。但是一位同事指出,实现多线程将使我的代码负责管理资源,而不是Web App容器负责资源管理。

所以我想知道,在代码中实现多线程有什么影响?以及如何确保在不影响整个应用程序的情况下正确管理资源。

1 个答案:

答案 0 :(得分:1)

您的问题中有些不同的方面混在一起。禁止在应用程序服务器上创建线程,因为它可能导致性能问题。服务器本身负责管理系统资源更多。服务器无法管理生成的自己的线程,服务器无法管理。有关该主题的更多信息,请参见this page

使用平台提供的线程执行程序非常有效,尽管如此,它仍可用于实现多线程。例如See here

多线程的另一个方面确实是性能。 certain cost附带创建线程,创建太多线程可能会导致conext切换的开销。开发人员必须考虑在权衡和必须管理大量线程之间进行权衡。同样,这就是应用服务器管理自己的线程池的原因。