如果我有将文件的每个单词读入 ArrayList
的代码或 HashSet
,将代码拆分为多个工作人员会更快吗threads
并为每个文件分配一个 block 来处理(假设有多个内核)?我的直觉说不,因为 I/O
在这种情况下,通常是瓶颈而不是 CPU。
最佳答案
常规驱动器的 IO channel 通常比物理介质本身可以提供的要快得多,因此 IO 不会成为瓶颈。使用磁性介质(又名标准硬盘驱动器),当磁头寻找您正在读取的各个位置时,您会使磁盘像疯了一样颠簸。性能将很糟糕,相当于一辆购物车在空荡荡的 6 车道高速公路上滚下。
固态驱动器不会受到寻道惩罚的影响,但它们的普及(或负担得起)还不够广泛(或负担得起),还没有足够的值(value)。
关于multithreading - 多线程会加快代码从磁盘读取到内存的速度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6680848/