文章内容

2021/2/3 11:18:31,作 者: 黄兵

在Python 3中Concurrent.futures 与 Multiprocessing 的区别

这篇文章详述了在Python 3中Concurrent.futures与Multiprocessing的异同。同时用代码的方式列举了两者之间的相似之处,代码摘录如下:

使用concurrent.futures的方式:

from concurrent.futures import ProcessPoolExecutor
def pool_factorizer_map(nums, nprocs):
    # Let the executor divide the work among processes by using 'map'.
    with ProcessPoolExecutor(max_workers=nprocs) as executor:
        return {num:factors for num, factors in
                                zip(nums,
                                    executor.map(factorize_naive, nums))}

使用multiprocessing的方式:

import multiprocessing as mp
def mp_factorizer_map(nums, nprocs):
    with mp.Pool(nprocs) as pool:
        return {num:factors for num, factors in
                                zip(nums,
                                    pool.map(factorize_naive, nums))}

可以看到两者本质是相同的。


原文链接:Concurrent.futures vs Multiprocessing in Python 3

分享到:

发表评论

评论列表