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

Для объединения результатов всех процессов в Pool в Python вы можете использовать метод map() вместо метода apply() или apply_async(). Метод map() автоматически собирает и возвращает все результаты выполнения функции, примененной к каждому элементу входного списка.

Вот пример использования метода map() для объединения результатов процессов в Pool:

from multiprocessing import Pool

# Функция, которую нужно выполнить для каждого элемента входного списка
def process_data(data):
    # Ваш код для обработки данных
    # Возвращаем результат обработки
    return processed_data

if __name__ == '__main__':
    # Входной список данных
    input_data = [1, 2, 3, 4, 5]
    
    # Создаем Pool с определенным количеством процессов
    pool = Pool(processes=4)
    
    # Используем метод map() для применения функции process_data к каждому элементу списка
    # При этом результаты каждого процесса будут автоматически собраны и возвращены в виде списка
    results = pool.map(process_data, input_data)
    
    # Выводим результаты
    print(results)

В этом примере мы создаем Pool с четырьмя процессами и применяем функцию process_data к каждому элементу входного списка input_data. Результаты каждого процесса собираются и возвращаются в виде списка results. Вы можете использовать этот список для дальнейшей обработки или вывода результатов.

Использование метода map() позволяет автоматически объединить результаты всех процессов в Pool без необходимости явно собирать их вручную. Если вам нужно объединить результаты только отдельных процессов, вы можете вместо этого использовать метод apply_async() и собирать результаты вручную с помощью метода get() для каждого процесса.