Этот фрагмент кода относится действие параллельно к каждому элементу последовательности:Как выполнить действие, которое не возвращает ничего параллельного для каждого элемента в последовательности?
import multiprocessing
...
pool = multiprocessing.Pool(2)
print(pool.map(action, sequence))
Как запустить действие параллельно, игнорируя при этом его результат (или, если он не возвращает ничего)? Нужно ли мне это делать, как в приведенном ниже фрагменте кода, который работает, но не подходит мне, или есть более элегантный метод?
import multiprocessing
...
pool = multiprocessing.Pool(2)
list(pool.map(action, sequence))) # Don't assign the result to a variable, since
# it will be just a list of `None`.
Другими словами, как я это делаю, но параллельно:
for c in sequence:
action(c)
'multiprocessing.Pool.map' сам моделирует функцию' map', но сравнение пока продолжается. Хотя многие считают, что это плохая форма, чтобы запускать «карту» для ее побочных эффектов, ее обычное дело с пулом. И хотя python 3 'map' возвращает итератор,' Pool.map' возвращает список. Таким образом, вам даже не нужно «перечислить» его. 'pool.map (действие, последовательность))' отлично. – tdelaney