c - 通过 C 中的多线程编辑所有文件
问题描述
如果您有一个包含未知数量文件的基本文件目录和包含文件的其他文件夹,并且需要重命名每个文件以附加创建日期,
即文件名.ext -> 文件名_09_30_2021.ext
假设重命名函数已经创建并且成功返回 1,失败返回 0,错误返回 -1,
int rename_file(char * 文件名)
我无法理解如何编写多线程文件解析部分以提高速度。
是否必须首先将整个文件树分解为带有文件名的 char 数组的 4 个部分,然后创建 4 个线程来处理每个部分?
这会不会适得其反并且比单个线程沿着文件树向下并在找到文件时重命名文件而不是为任何多线程列出它们?
解决方案
这会不会适得其反并且比单个线程沿着文件树向下并在找到文件时重命名文件而不是为任何多线程列出它们?
一般来说,对于密集的 CPU 操作,您可以从多线程中获得更好的性能。在这种情况下,您可能几乎看不到任何改进。它甚至很可能变慢。
这里的瓶颈不是cpu。它正在从磁盘读取。
相关:我写的关于一般访问时间的答案https://stackoverflow.com/a/45819202/6699433
推荐阅读
- javascript - React Typescript 和内联 if 语句来建立类型
- python - Scrapy 爬取规则发送 URL
- vue.js - Vuex:如何在调度之前检查一个动作是否存在?
- eclipse - Scala Eclipse IDE 不会通过 Gradle 引入外部依赖项
- c++ - 对我所有函数的未定义引用 C++ 我认为这可能是因为我的 makefile
- mongodb - MongoDB $in 内 $cond
- python - 在 Django 中搜索期间分页不起作用
- jquery - 在两列布局中切换特定列?
- android - 如何清除/删除 Webview 的 Web 存储
- python-3.x - Gtk.PrintOperation.run () 没有响应