繁体   English   中英

Python多处理:pool.map与使用队列

[英]Python Multiprocessing: pool.map vs using queues

我正在尝试使用Pythonmultiprocessing包。 在查看教程时,最清晰,最直接的技术似乎是使用pool.map ,它允许用户轻松命名进程数pool.map传递一个函数和一个值列表,以便在CPU之间分配。 我遇到的另一种技术是使用队列来管理工作池。 这个答案很好地解释了pool.mappool.applypool.apply_async之间的区别,但是使用pool.map与使用这个例子中的队列有什么优缺点?

pool.map技术是具有队列的技术的“子集”。 也就是说,如果没有pool.map您可以使用PoolQueue轻松实现它。 也就是说,使用队列可以更灵活地控制池进程,也就是说,您可以使每个进程的生命周期只读取特定类型的消息一次,控制池进程的关闭行为等。

如果您真的在寻找“最清晰,最直接的技术”,那么使用concurrent.futures.ProcessPoolExecutor可能是最简单的方法。 它有一个map方法以及一些使它非常实用的其他原语。 它也与Queue兼容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM