是否可以使用python的Pool.map()获得交互式反馈

时间:2018-10-02 18:10:57

标签: python multiprocessing python-multiprocessing pool

我有类似的东西

from multiprocessing import Pool

def handle_element((element, params)):
    # do handling
    print ('done handling element')

elements = [....]
element_params = [(), (), ...]
pool = Pool()
pool.map(handle_element, zip(elements, element_params))

我只能在map()结束后才能看到照片。

是否有办法从map()中获得更多的互动反馈?

编辑:使用Python 2.7

1 个答案:

答案 0 :(得分:0)

我无法重现您的问题。我在映射过程中出现了打印语句。

您的示例存在一些问题:

  1. 函数参数中带有括号的语法错误。
  2. 您的handle_element函数应仅接受一个参数。

使用以下代码,我在执行过程中得到了输出。

from multiprocessing import Pool
import time

def handle_element(args):
    element, params = args
    # do handling
    print ('done handling element', element, params)
    time.sleep(1.0)

elements = range(100)
params = [('a', 'b')] * 100
pool = Pool()
pool.map(handle_element, zip(elements, params))

如果您的示例中还有更多导致问题的示例,请提供一个演示该问题的最小示例。

注意:我正在使用Python 3.6.3。