我正在处理磁盘上的一堆文件。我的程序模式就像读取文件,处理数据和写入另一个文件,以及目录中的所有文件一遍又一遍。
平均读取文件大约需要80ms,处理数据大约需要700ms,写入文件需要不到50ms。所以我认为如果我能够连续读取文件并使用多个线程来处理它们将节省我一些时间。
因此,我尝试在TBB中使用管道类来并行化我的代码。基本上我已经使读取过滤器和写入过滤器以串行方式运行,并且过程过滤器并行运行。但是我尝试更改ntoken和线程数,当我只使用一个线程时程序运行得更快。
我已经检查了CPU使用情况,虽然我使用了多个线程,但我看到只有一个核心处于繁忙状态。所以有人能告诉我出了什么问题吗?