python - 了解 Pool 中已完成多少任务

标签 python multithreading pool python-multithreading

我正在使用Python的多处理和map来处理大量的列表 这是概述

池 = 线程池(4) someList #这里大约有300k个元素 结果 = pool.map(someMethod,someList)

Python 是否可以打印出处理 10k 个元素的报告?

最佳答案

据我了解,映射的要点是为每个元素调用的函数对于每个元素都是相同的。不过你可以稍微修改一下 - 只需将索引与你的元素一起传递即可:

someListWithIndices = [{'index': i, 'data': x} for i,x in enumerate(someList)]

现在您需要调整 someMethod 以使用给定字典中的数据字段并对提供的新索引执行一些操作。

您可能不会完全得到您想要的结果(精确地每 10k 个元素打印一次),但如果您想粗略地了解您所取得的进展,这可能就是您正在寻找的东西。

关于python - 了解 Pool 中已完成多少任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27421425/

相关文章:

python - python中如何根据日期对数据进行排序

python - 如何理解 python numpy 数组中的空维度?

multithreading - Jenkins管道脚本-线程编程

c++ - 与 omp 并行

python - 多处理池 - 如果返回所需结果,如何取消所有正在运行的进程?

python - 在 Python 中更新和创建多维字典

Python 二维条件

Ruby:文件中的数据仅在程序终止后写入/保存/可见

java - 好的客户端套接字池

python - multiprocessing.Pool() 比仅使用普通函数慢