• Как объединить результаты всех процессов Pool?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Используйте outcomes после выполнения Pool, попробуйте так:
    from itertools import repeat
    from multiprocessing import Pool, Manager
    
    def reader(entry, outcomes):
        # ...
        
        prediction = min(distances) + (mlc_data[min(distances)[1]],)
        outcomes[entry_pairs[' '.join(entry)]] = prediction
    
    manager = Manager()
    outcomes = manager.dict()
    
    with Pool(3) as p:
        # Обрабатываем каждый элемент из input[0] и сохраняем результаты в outcomes:
        p.starmap(reader, zip(input[0], repeat(outcomes)))
        p.close()
        p.join()
    
    print(outcomes)  # должен содержать все элементы
    Ответ написан
    4 комментария