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