Можно ли получить интерактивную обратную связь с помощью python's Pool.map ()? - PullRequest
0 голосов
/ 02 октября 2018

У меня есть что-то похожее на:

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 голосов
/ 02 октября 2018

Я не могу воспроизвести вашу проблему.Я получаю оператор печати во время отображения.

В вашем примере есть несколько проблем:

  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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...