在下面的链接中有对 Pool
类的 map
方法的解释。
它似乎阻塞直到结果准备好。这意味着不需要执行 pool.close(); pool.join()
在运行 pool.map
之后,但是它在 this 中以这种方式演示博客。
在运行 pool.map
(与 pool.map_async
相对)之后,我是否遗漏了什么或者是否需要执行 pool.close?请注意,我正在使用 [multiprocessing.dummy][2]
,它提供了与多处理类似的 api,但在幕后使用了线程。
https://docs.python.org/2/library/multiprocessing.html#multiprocessing.pool.multiprocessing.Pool.map
最佳答案
pool.close
告诉池不接受任何新作业。
pool.join
告诉池等待所有作业完成然后退出,有效地清理池。
所以阻塞父进程只是 pool.join
正在做的事情的副作用。
的确,当您调用 pool.map()
时,父进程会被阻塞,直到 map 返回结果。但使用后关闭
并加入
池
是一个很好的做法,可以更好地管理资源和控制异常。
关于python - 多处理中 pool.join、pool.close 的目的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35708371/