假设我必须阅读、处理和更新大量 Java 文件。我将使用一台 16 核的计算机。由于我有 IO 密集型(读取和更新文件)和 CPU 密集型(处理)任务,我分配了 2 个线程池。
我将为具有 16 个线程的 CPU 密集型任务分配一个池(线程数 == CPU 数)。现在我想知道 IO 绑定池的大小是多少。你会建议什么大小的线程池?
假设我必须阅读、处理和更新大量 Java 文件。我将使用一台 16 核的计算机。由于我有 IO 密集型(读取和更新文件)和 CPU 密集型(处理)任务,我分配了 2 个线程池。
我将为具有 16 个线程的 CPU 密集型任务分配一个池(线程数 == CPU 数)。现在我想知道 IO 绑定池的大小是多少。你会建议什么大小的线程池?
这取决于您的存储能力以及您尝试执行的 IO 类型。例如,硬盘上的长顺序写入将有利于单个 IO 线程,但您可能希望根据您的要求对其进行扩展。
在这个答案中,https ://stackoverflow.com/a/2821025/2855891,BlackAura 解释了为什么实验和分析可能是您真正找到答案的唯一方法。
可能已经有关于这个主题的非常好的文章。