知道在Pool中完成了多少任务

时间:2014-12-11 11:09:38

标签: python multithreading pool python-multithreading

我使用Python的多处理和map来处理大量的列表 以下是概述

pool = ThreadPool(4) someList #About 300k elements here results = pool.map(someMethod,someList)

python是否可以打印报告说处理了10k个元素?

1 个答案:

答案 0 :(得分:1)

我理解的映射点是每个元素调用的函数对于每个元素是相同的。但是你可以稍微破解它 - 只需将索引与你的元素一起传递:

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

现在你需要调整someMethod来使用给定字典中的数据字段,并对提供的新索引做一些事情。

你可能无法获得完全理想的结果(只打印每10k个元素),但如果你想大致知道你所取得的进步,那么这可能就是你要找的东西。