0
由于我需要在我的工作者函数中有几个参数,所以我使用starmap,但是如何使用tqdm显示进度?python multiprocessing starmap progressbar
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来显示pregress?
是否有可能改变你的函数接收单个元组参数而不是几个?这会让你'imap'而不是'starmap',所以主进程可以循环传入结果来更新进度条。不幸的是,没有'istarmap'!如果你只需要为一个你不能修改的函数做这件事(例如它来自一个库),你可以用在顶层定义的'def wrapper(tup):func(* tup)'函数来包装它。 – Blckknght