Учитывая следующий код, есть ли еще какой-нибудь 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]