【发布时间】:2016-03-18 23:55:03
【问题描述】:
multiprocessing.Poolmap 函数对于并行处理数据非常有用;它会自动从原始列表中创建块,并将它们提供给不同的工作人员。
有时您正在扫描列表以查找验证功能的唯一元素(例如,密码破解、谓词检查)。在这些情况下,您对获取所有输入的映射不感兴趣,而只对验证检查的那个感兴趣。
自动并行化这些任务的最佳方法是什么?
【问题讨论】:
-
不看结果怎么能说你对结果不感兴趣?
-
例如当你想暴力破解密码时,你知道只有一个密码是正确的,所以当你找到它时,工作就完成了。
-
只需分解您的输入,以便使用 pool_size 项目数调用 map。如果任何返回符合您的终止条件,则停止,否则继续下一个 pool_sized 块。
-
另外请记住,这将是一个非常缓慢的密码破解程序。
-
@pvg:我不是暴力破解密码,我会使用 C。这只是为了举例说明 ;)
标签: python multithreading python-multiprocessing