Как повторно вызывать одну и ту же функцию в пуле процессов в Python? - PullRequest
0 голосов
/ 03 марта 2020

Учитывая следующий код, есть ли еще какой-нибудь pythoni sh способ сделать это?

Хранение каждого процесса в списке для последующего вызова другой функции (result()) в каждом из этих процессов кажется плохим дизайн. Тем более, если мне нужен список результатов, например, что делает Executor.map(), но поскольку функция не имеет параметров (или они могут быть одинаковыми во всех вызовах), я не могу использовать map(), чтобы сделать это.

import random
from concurrent.futures import ProcessPoolExecutor

def random_computation():
    x = random.randint(1,1000)
    y = random.randint(1,1000)
    z = random.randint(1,1000)
    return x * y / z

if __name__ == '__main__':
    with ProcessPoolExecutor() as executor:
        processes = []
        for _ in range(1000):
            processes.append(executor.submit(random_computation))
        results = [p.result() for p in processes]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...