【发布时间】:2012-11-05 11:37:00
【问题描述】:
假设我需要从磁盘上保存的同一个文件中读取许多不同的、独立的数据块。
这个上传可以多线程吗?
相关:同一处理器上的所有线程是否使用同一 IO 设备从磁盘读取?在这种情况下,多线程根本不会加快上传速度——线程只会排队等待。
(我目前正在使用 OpenMP 进行多线程处理。)
【问题讨论】:
-
多个线程可以同时读取,通常需要多个线程(或进程)进行 IO 才能使单向带宽饱和。当然,从一个非常大的文件的遥远部分读取可能(并且大多数情况下)会使磁盘磁头不断寻找。
-
@HristoIliev 除非系统预取更大的块。
标签: c++ multithreading io openmp