Python多进程/多线程用于并发文件复制操作

2024-04-26 22:31:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写python代码,将一堆大文件/文件夹从一个位置复制到桌面上的另一个位置(没有网络,所有东西都是本地的)。我用的是shutil模块。在

但问题是它需要更多的时间,所以我想加快这个复制过程。我尝试使用线程和多处理模块。但令我惊讶的是,这两种代码都比顺序代码花费更多的时间。在

还有一个观察结果是,对于相同数量的文件夹,所需的时间随着进程数的增加而增加。我的意思是假设我有以下目录结构

                       /a/a1, /a/a2, /b/b1 and /b/b2

如果我创建两个进程来复制文件夹a和b,所用的时间假设为2分钟。 现在,如果我创建4个复制文件夹a/a1、a/a2、b/b1和b/b2的过程,大约需要4分钟。我只在多处理不确定线程的情况下尝试了这个方法。在

我不知道发生了什么事。有人会有类似的问题吗?在python中使用多处理/线程有什么最佳实践可以分享吗?在

谢谢 阿比吉特


Tags: 模块文件代码网络文件夹a2进程过程
1条回答
网友
1楼 · 发布于 2024-04-26 22:31:24

您的问题很可能是IO受限的,因此更多的计算并行化将无济于事。如您所见,现在要求IO请求在不同的线程/进程之间来回跳转,可能会使问题变得更糟。在计算机上移动数据的速度是有实际限制的,特别是在涉及磁盘的地方。在

相关问题 更多 >