关联
Multiprocessing : use tqdm to display a progress bar
方法
使用Pool多线程并行处理任务并返回结果
需要对进度条进行特殊处理
tqdm方法
from multiprocessing import Pool
import tqdm
import time
def _foo(my_number):
square = my_number * my_number
time.sleep(1)
return square
if __name__ == ‘__main__‘:
with Pool(2) as p:
r = list(tqdm.tqdm(p.imap(_foo, range(30)), total=30))
progressbar方法
from multiprocessing import Pool
from progress bar import ProgressBar,Bar,ETA
from time import sleep
def fcn(n):
sleep(0.1)
return n*n
feed = range(256)
if __name__ == "__main__":
with Pool(10) as p:
widgets = [Bar(),ETA()]
pbar = ProgressBar(widgets=widgets,maxval=len(feed))
return = list(pbar(p.imap(fcn,feed)))
注意
使用map将无法显示进度,从0直接到100没有过程,使用imap可展示遍历过程。
不加if __name__ == "__main__"会无限报错
不加list()无法正常显示进度条
参考
原文:https://www.cnblogs.com/azureology/p/13212723.html