gpt4 book ai didi

python - 在 python 中限制线程的规范/标准方法

转载 作者:行者123 更新时间:2023-11-28 23:06:27 24 4
gpt4 key购买 nike

我编写了一个脚本,遍历某个目录中的文件,启动一个线程并对文件执行某些操作。因为这些是冗长、昂贵的操作,我将线程数限制为比我运行它的给定机器上找到的 cpus 数少一个。然后它不断检查事件线程的数量,如果有空闲容量,则启动另一个线程。对于返回机器上 cpu 数量的函数,我使用了 this .

ncpus = detectCPUs()

for (dirpath, dirnames, filenames) in os.walk(path_to_root):
for filename in filenames:
while True:
if threading.activeCount() < ncpus - 1:
MyThread(dirpath, filename).start()
break
else:
time.sleep(100)

我情不自禁地觉得 threading 库或 python 中的其他地方有一些函数会自动为我做这件事,而我不必密切关注线程数和 cpus .有人知道吗?或者指出经验丰富的退伍军人如何做到这一点?

一些限制。我使用的共享机器只安装了 python 2.5,我没有 root 权限来安装东西。所以 multiprocessing 或需要 python 2.6 或更高版本的不错的库是不可能的。

最佳答案

也许线程池实现就是您想要的?

http://code.activestate.com/recipes/577187/

它看起来像这样:

pool = ThreadPool(num_threads)
for obj in objects:
pool.add_task(obj.do_stuff, [arg1, arg2])
pool.wait_completion()

关于python - 在 python 中限制线程的规范/标准方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4983128/

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