gpt4 book ai didi

Java Executors.newFixedThreadPool() - Web 应用程序中理想的线程数?

转载 作者:行者123 更新时间:2023-12-01 12:59:11 25 4
gpt4 key购买 nike

在 Java Web 应用程序中,我有一个关于使用 newFixedThreadPool() 时要创建的理想线程数的问题。

Java 并发实践中的示例始终建议使用 Runtime.getRuntime().availableProcessors() + 1 创建它

但是,在我的 Web 应用程序中,这样做似乎会长时间锁定系统(大约 20-30 秒),因为还有来自用户和数据库线程的 HTTP 请求,用于读取/写入数据数据库。

是否有人建议使用线程池来处理数字的理想线程数,同时仍保留一些核心可用于运行响应迅速的 Web 应用程序的其他方面?看来书中的示例非常适合独立应用程序,但不适用于 Web 应用程序。

最佳答案

我认为这完全取决于特定应用程序的架构。要考虑的因素太多,无法给出有用的数字。
但例如 Weblogic 服务器,人们可能会认为它是“通用 Web 应用程序”,它使用自调整线程池。它不断检查性能统计数据并相应地调整线程池(和其他资源)。
因此,线程数量不是恒定的,并且总是远多于可用核心的数量。正如 Sakura 提到的,您必须进行负载测试才能找到答案。

关于Java Executors.newFixedThreadPool() - Web 应用程序中理想的线程数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23656785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com