>我有一些看起来像:
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
我无法重现您的问题。 我在映射期间收到打印语句。
您的示例有几个问题:
- 函数参数中带有额外括号的语法错误。
- 您的
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。