python - 将 tqdm 与 concurrent.futures 一起使用?
问题描述
我有一个多线程函数,我想要一个状态栏来使用tqdm
. 有没有一种简单的方法来显示状态栏ThreadPoolExecutor
?令我困惑的是并行化部分。
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
以下内容跟踪进度:
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]
推荐阅读
- ssl - arduino 在发出 HTTPS GET 请求时得到响应 301
- java - SpringBoot:从泛型映射器中的泛型类型创建对象
- reactjs - 带有 react useState 钩子的计数器无法正常工作
- c# - 局部位置和全局位置
- python - Pygame 混音器在我不想要的时候播放声音
- python - 如何从迭代第三个数据帧的两列的函数返回两个数据帧?
- angular - 具有名称的表单控件没有值访问器 - mat-button-toggle
- c# - 优先考虑在单个 WebApp 中运行的多个 Azure WebJobs 之一
- python - 如何防止 Visual Studio 2019 将制表符更改为空格?
- python - 在 windows python 上安装 mapnik