如何在Java中的并行程序中获得理想数量的线程?
2022-09-02 11:51:56
我需要在批处理程序中获得理想数量的线程,该程序在支持并行模式的批处理框架中运行,例如Spring Batch中的并行步骤。
据我所知,有太多的线程来执行程序的步骤是不好的,它可能会对程序的性能产生负面影响。某些因素可能会出现性能下降(上下文切换,使用共享资源时的争用条件(锁定,同步..)...(还有其他因素吗?
当然,获得理想线程数的最佳方法是让我进行实际的程序测试,以调整程序的线程数。但在我的情况下,进行实际测试并不容易,因为测试需要很多东西(人员,测试计划,测试数据等),这对我来说太难了,现在很难准备。因此,在进行实际测试之前,我想知道如何尽可能地获得可猜测的程序的理想线程数。我应该考虑什么才能获得程序的理想线程数(步骤)?CPU 内核数??我的程序将在其上运行的计算机上的进程数??数据库连接数??在这样的情况下,有没有像公式这样的理性方法?