首页 > 解决方案 > 通过 C 中的多线程编辑所有文件

问题描述

如果您有一个包含未知数量文件的基本文件目录和包含文件的其他文件夹,并且需要重命名每个文件以附加创建日期,

即文件名.ext -> 文件名_09_30_2021.ext

假设重命名函数已经创建并且成功返回 1,失败返回 0,错误返回 -1,

int rename_file(char * 文件名)

我无法理解如何编写多线程文件解析部分以提高速度。

是否必须首先将整个文件树分解为带有文件名的 char 数组的 4 个部分,然后创建 4 个线程来处理每个部分?

这会不会适得其反并且比单个线程沿着文件树向下并在找到文件时重命名文件而不是为任何多线程列出它们?

标签: cwindowsmultithreadingfileparsing

解决方案


这会不会适得其反并且比单个线程沿着文件树向下并在找到文件时重命名文件而不是为任何多线程列出它们?

一般来说,对于密集的 CPU 操作,您可以从多线程中获得更好的性能。在这种情况下,您可能几乎看不到任何改进。它甚至很可能变慢。

这里的瓶颈不是cpu。它正在从磁盘读取。

相关:我写的关于一般访问时间的答案https://stackoverflow.com/a/45819202/6699433


推荐阅读