使用tqdm与current.futures? [英] Use tqdm with concurrent.futures?
本文介绍了使用tqdm与current.futures?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个多线程函数,我想要一个使用tqdm
的状态栏.是否有一种简单的方法来显示ThreadPoolExecutor
的状态栏?正是并行化部分使我感到困惑.
I have a multithreaded function that I would like a status bar for using tqdm
. Is there an easy way to show a status bar with ThreadPoolExecutor
? It is the parallelization part that is confusing me.
import concurrent.futures
def f(x):
return f**2
my_iter = range(1000000)
def run(f,my_iter):
with concurrent.futures.ThreadPoolExecutor() as executor:
function = list(executor.map(f, my_iter))
return results
run(f, my_iter) # wrap tqdr around this function?
推荐答案
您可以将tqdm
包裹在executor
周围,如下所示以跟踪进度:
You can wrap tqdm
around the executor
as the following to track the progress:
list(tqdm(executor.map(f, iter), total=len(iter))
这是您的示例:
import time
import concurrent.futures
from tqdm import tqdm
def f(x):
time.sleep(0.001) # to visualize the progress
return x**2
def run(f, my_iter):
with concurrent.futures.ThreadPoolExecutor() as executor:
results = list(tqdm(executor.map(f, my_iter), total=len(my_iter)))
return results
my_iter = range(100000)
run(f, my_iter)
结果是这样的:
16%|██▏ | 15707/100000 [00:00<00:02, 31312.54it/s]
这篇关于使用tqdm与current.futures?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文