我正在尝试将multiprocessing
包用于Python
. 在查看教程时,最清晰和最直接的技术似乎是使用pool.map
,它允许用户轻松命名进程数并传递pool.map
函数和该函数的值列表以分布在 CPU 上。我遇到的另一种技术是使用队列来管理工人池。这个答案很好地解释了, 和之间的区别pool.map
,但是在这个例子中使用队列与使用队列有什么优点和缺点?pool.apply
pool.apply_async
pool.map
问问题
14627 次
2 回答
10
该pool.map
技术是具有队列的技术的“子集”。也就是说,您无需使用andpool.map
即可轻松实现它。也就是说,使用队列可以让您在控制池进程方面更加灵活,即您可以使特定类型的消息在每个进程的生命周期中只读取一次,控制池进程的关闭行为等。Pool
Queue
于 2013-09-26T17:42:53.250 回答
4
如果您真的在寻找“最清晰和最直接的技术”,那么使用concurrent.futures.ProcessPoolExecutor
可能是最简单的方法。它有一个map
方法以及其他一些使其非常有用的原语。它也与Queue
s 兼容。
于 2013-09-26T17:47:41.170 回答