使用 concurrent.futures.ProcessPoolExecutor 进行多处理不好吗?



我的一个朋友告诉我,我在下面的代码片段中有一个性能错误。他告诉我用mapimap代替。我不明白出了什么问题。我应该改用multiprocessing包吗?如何改进?

with concurrent.futures.ProcessPoolExecutor() as executor:
result = list(future.result() for future in
[ executor.submit(do_something, id) for id in [1,2,3] ])

根据 ProcessPoolExecutor 文档,ProcessPoolExecutor 已经使用了多处理模块。

ProcessPoolExecutor 类是一个 Executor 子类,它使用进程池异步执行调用。ProcessPoolExecutor 使用多处理模块,这允许它避开全局解释器锁,但也意味着只能执行和返回可选取的对象。

相关内容

  • 没有找到相关文章