multithreading - 多线程会加快代码从磁盘读取到内存的速度吗?

标签 multithreading concurrency io

如果我有将文件的每个单词读入 ArrayList 的代码或 HashSet ,将代码拆分为多个工作人员会更快吗threads并为每个文件分配一个 block 来处理(假设有多个内核)?我的直觉说不,因为 I/O在这种情况下,通常是瓶颈而不是 CPU。

最佳答案

常规驱动器的 IO channel 通常比物理介质本身可以提供的要快得多,因此 IO 不会成为瓶颈。使用磁性介质(又名标准硬盘驱动器),当磁头寻找您正在读取的各个位置时,您会使磁盘像疯了一样颠簸。性能将很糟糕,相当于一辆购物车在空荡荡的 6 车道高速公路上滚下。

固态驱动器不会受到寻道惩罚的影响,但它们的普及(或负担得起)还不够广泛(或负担得起),还没有足够的值(value)。

关于multithreading - 多线程会加快代码从磁盘读取到内存的速度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6680848/

相关文章:

c# - 当计时器线程没有按时完成时会发生什么

java - 是否会陷入僵局?

sql-server - 在 SQL Server 2005 和 2008 中,如何判断我使用的是悲观并发模型还是乐观并发模型?

c# - 使用 Parallel.ForEach (多线程)从列表中获取总和为值的元素数组

java - 如何在多线程环境中交换 boolean 值?

c++ - 并发写入 std::vector 到不同的索引会导致崩溃?

java - 在递归创建线程时跟踪线程

java - new FileOutputStream 慢,有没有更好的办法?

c++ - 如何为Winboard制作一个简单的协议(protocol)?

c# - Unity3d 和线程