【发布时间】:2010-11-17 09:59:50
【问题描述】:
在 Goetz 的“Java Concurrency in Practice”中,在第 101 页的脚注中,他写道“对于此类不 I/O 且不访问共享数据的计算问题,Ncpu 或 Ncpu+1 线程产生最佳吞吐量;更多线程没有帮助,实际上可能会降低性能......"
我的问题是,在执行文件写入、文件读取、文件删除等 I/O 操作时,是否有关于使用线程数来实现最大性能的准则?我知道这只是一个指导数字,因为磁盘速度和许多其他因素都会影响到这一点。
不过,我想知道:20 个线程将 1000 个单独的文件写入磁盘的速度是否比 4 个 CPU 机器上的 4 个线程更快?
【问题讨论】:
标签: java multithreading io