Запустите многопроцессорную обработку Python одной и той же функции с несколькими параметрами

#python #python-2.7 #multiprocessing

#python #python-2.7 #многопроцессорная обработка

Вопрос:

У меня есть функция, которая говорит:

  Fun1(a,b):
   return a*b
 

Я хочу вызвать Fun1 несколько раз с разными значениями a и b.
Необходимо использовать многопроцессорную обработку, поскольку Fun1 вызывается миллионы раз в

Комментарии:

1. Вы проверили ProcessPollExecutor map ?

2. Можете ли вы показать мне пример? похоже, не получается использовать 2 разных аргумента для функции

Ответ №1:

 from concurrent.futures import ProcessPoolExecutor


def fun1(a, b):
    return a * b

# if __name__ == '__main__': is required for platforms that do not
# support fork(), such as Windows:
if __name__ == '__main__':
    a = [1, 2, 3]
    b = [4, 5, 6]
    with ProcessPoolExecutor(max_workers = 3) as executor:
        results = executor.map(fun1, a, b)
    for result in results:
        print(result)
 
 4
10
18