gpt4 book ai didi

python - 动态更改并行线程数

转载 作者:行者123 更新时间:2023-12-03 13:05:20 24 4
gpt4 key购买 nike

我有一个程序需要通过网络进行大量查询,所以我正在做的是并行化工作。它实际上是 I/O 受限的,我只是在做:

for i in range(options.workers):
w = Worker(queue, output_queue, options.site)
w.setDaemon(True)
w.start()

for i, dataset_metadata in enumerate(datasets_metadata):
queue.put((i+1, dataset_metadata))

queue.join()
options.workers来自命令行。现在我想动态改变作品的数量。

第一个问题:如何在 queue.join之后添加worker ?

第二个问题:如何在运行时评估最佳 worker 数量?我想我必须监控速度任务/时间,增加 worker 数量,直到这个比例没有改变。

最佳答案

您可能可以自己启动和停止您的工作人员,但您需要的大部分功能可能已经可用:

  • multiprocessing.dummy 模块导出与 multithreading 相同的 API ,仅使用线程而不是进程实现。
    这意味着您可以使用 Pool 的 worker 已经实现,如果在某些时候需要,它可以很容易地从线程切换到多处理。
  • concurrent.futures API 提供了更高级的并发模型。它在python3.2+的标准库中,但是有backports对于早期版本。
  • 关于python - 动态更改并行线程数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10945320/

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