gpt4 book ai didi

Python - 从线程池调用 Linux 命令不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 11:35:44 25 4
gpt4 key购买 nike

--大家好,--

我有大约 4000 (1-50MB) 个文件要排序。

我正在考虑让 Python 调用 Linux 排序命令。由于我认为这可能在某种程度上受 I/O 限制,所以我会使用线程库。

这就是我所拥有的,但是当我运行它并观察系统监视器时,我没有看到 25 个排序任务弹出。好像是一个一个运行?我做错了什么?

...
print "starting sort"
def sort_unique(file_path):
"""Run linux sort -ug on a file"""
out = commands.getoutput('sort -ug -o "%s" "%s"' % (file_path, file_path))
assert not out

pool = ThreadPool(25)
for fn in os.listdir(target_dir):
fp = os.path.join(target_dir,fn)
pool.add_task(sort_unique, fp)

pool.wait_completion()

Here's where ThreadPool comes from , 也许那是坏了?

最佳答案

你做的一切都是正确的。

有一种东西叫GIL在 python 中;
全局解释器锁——最终导致 python 一次只执行一个线程。

改为选择子进程 :),python 不是多线程的。

关于Python - 从线程池调用 Linux 命令不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7998850/

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