gpt4 book ai didi

python多处理星图进度条

转载 作者:太空宇宙 更新时间:2023-11-03 12:02:43 36 4
gpt4 key购买 nike

因为我的 worker 函数中需要几个参数,所以我使用了 starmap,但是我如何使用 tqdm 显示进度?

from itertools import repeat
from multiprocessing import Pool

def func(i, a, b, c):
print(i, a, b, c)

if __name__ == '__main__':
pool = Pool(thread_num)
a, b, c = 'a', 'b', 'c'
pool.starmap(func, zip(range(100), repeat(a), repeat(b), repeat(c)))
pool.close()
pool.join()

那么我如何使用 tqdm 来显示进度?

最佳答案

您应该创建一个进程来监视其他进程传递的信号并更新您的 tqdm。一个最小的例子给你:

from multiprocessing import Queue, Pool, Process

def listener(q, num):
tbar = tdqm(total = num)
for i in iter(q.get, None):
tbar.update()
tbar.close()

def worker(q):
do something.
queue.put(1)

if __name__ == "__main__":
....
q.put(None) #when you finish your work, put a None signal to finish the listener.

关于python多处理星图进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43714126/

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