gpt4 book ai didi

python - multicpu bzip2 使用 python 脚本

转载 作者:太空宇宙 更新时间:2023-11-03 11:35:53 24 4
gpt4 key购买 nike

我想快速bzip2压缩几百G的数据使用我的 8 核 16 GB 内存工作站。目前我正在使用一个简单的 python 脚本来压缩整个使用 bzip2 的目录树和耦合到 os.walk 的 os.system 调用打电话。

我看到 bzip2 只使用一个 cpu 而另一个 cpu保持相对空闲。

我是队列和线程进程的新手。但我想知道如何我可以实现这个,这样我就可以有四个 bzip2 运行线程(实际上我猜是 os.system threads ),每个都可能使用自己的cpu ,当它们 bzip 时从队列中耗尽文件。

我的单线程脚本粘贴在这里。

import os
import sys

for roots, dirlist , filelist in os.walk(os.curdir):
for file in [os.path.join(roots,filegot) for filegot in filelist]:
if "bz2" not in file:
print "Compressing %s" % (file)
os.system("bzip2 %s" % file)
print ":DONE"

最佳答案

使用subprocess 模块一次生成多个进程。如果其中 N 个正在运行(N 应该比您拥有的 CPU 数量多一点,比如 3 个代表 2 个内核,10 个代表 8 个),等待一个终止然后启动另一个。

请注意,这可能没有太大帮助,因为会有很多您无法并行化的磁盘事件。大量可用 RAM 用于缓存会有所帮助。

关于python - multicpu bzip2 使用 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3345199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com