gpt4 book ai didi

java - 有效线程数

转载 作者:可可西里 更新时间:2023-11-01 12:57:42 25 4
gpt4 key购买 nike

我想优化我的应用程序线程数。除了 CPU 使用率之外,几乎所有这些都具有同等值(value)的 IO。当系统中没有其他应用程序运行时,有效线程数是多少。我想要 Windows 和 JVM 下的答案。

最佳答案

没有针对每个操作系统的答案。这将取决于您的代码正在执行的特定任务集。您应该使用不同的配置对您的应用程序进行基准测试,看看哪一个配置性能最高。

关于多线程的一些一般技巧:

  • 您无法使用更多线程来加快类似任务的速度;异常(exception)情况是,如果您有多个 CPU,则可以使用每个 CPU 一个线程并行计算任务,前提是可以拆分此逻辑,这样它就不必串行执行。一个很好的例子就是像合并排序这样的分而治之的问题,其中两半可以按任何顺序排序。

  • 您可以通过并行处理不使用机器同一部分的任务来实现一些加速。因此,假设您说 I/O 和计算任务具有“同等值(value)”,您将希望将它们分成不同的线程 - 同样,这假设顺序并不重要。

如果在这种情况下(与许多应用程序一样)线程执行一些计算逻辑,然后执行一些 I/O(例如将数据写入磁盘或数据库服务器),那么将很难得出结论使用一些公式来确定您应该拥有的确切线程数,因为这将在很大程度上取决于您正在处理的数据、您如何处理它以及处理完成后您正在做什么。这就是为什么最好的办法是拥有一个大小可以轻松调整的可配置线程池 - 然后运行一些不同大小的负载测试,看看哪个执行得最好。

关于java - 有效线程数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2193310/

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