Я использую библиотеку Python multiprocessing
для обработки списка входов со встроенным методом map()
. Вот соответствующий фрагмент кода:Печать строки обновления всякий раз, когда подпроцесс заканчивается в многопроцессорном пуле Python 3
subp_pool = Pool(self.subprocesses)
cases = subp_pool.map(self.get_case, input_list)
return cases
Функция, которая будет работать параллельно является self.get_case()
, а список входов input_list
.
Я хотел бы напечатать прогресс строки на стандартный вывод в следующем формате:
Working (25/100 cases processed)
Как я могу обновить локальную переменную внутри класса, который содержит пул, так что всякий раз, когда подпроцесс, то переменная увеличивается на 1 (а затем печатается на стандартный вывод)?
Почему вы используете 'multiprocessing.dummy' вместо' multiprocessing'? – mittelmania
@mittelmania Ваш код ссылался на темы, поэтому я предположил, что вы их тоже использовали. Не стесняйтесь удалять '.dummy' из моего примера, он должен работать точно так же (предполагая, что вы используете Python 3.x, как указано в вопросе). – dano