【问题标题】:JAVA: Impact of multhithreaded code in Web Application [closed]JAVA:多线程代码在 Web 应用程序中的影响 [关闭]
【发布时间】:2019-02-14 09:12:21
【问题描述】:

在企业后端 Java 应用程序中,我有一个需求,即部分代码调用各种相互独立的 API。收到响应后,我正在使用它们并将数据传递给请求者。

为此,我实现了基于可调用的多线程(使用 Executor)。但一位同事表示,实现多线程将使我的代码负责管理资源,而不是可能导致性能问题的 Web 应用容器。

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

【问题讨论】:

    标签: java performance application-server


    【解决方案1】:

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

    使用平台提供的线程执行器是非常有效的,但仍可用于实现多线程。以See here 为例。

    多线程的另一个方面确实是性能。创建线程带有certain cost,创建太多线程可能会导致上下文切换的开销。并行性和必须管理大量线程之间的权衡必须由开发人员考虑。这也是应用程序服务器管理自己的线程池的原因。

    【讨论】:

    • 如果服务器不知道新产生的线程,是否意味着资源管理不善?我应该在代码中做些什么来确保我的线程资源得到妥善管理?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-02
    • 2013-05-25
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多