Как запустить функции параллельно в python?

Пользователь

от delphine_bartoletti , в категории: Python , 2 месяца назад

Как запустить функции параллельно в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от dayna , 2 месяца назад

@delphine_bartoletti 

В Python можно запустить функции параллельно с помощью модуля multiprocessing или модуля concurrent.futures. Вот примеры использования обоих модулей:


С помощью multiprocessing:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import multiprocessing

def func1():
    # код функции

def func2():
    # код функции

if __name__ == '__main__':
    p1 = multiprocessing.Process(target=func1)
    p2 = multiprocessing.Process(target=func2)

    p1.start()
    p2.start()

    p1.join()
    p2.join()


С помощью concurrent.futures:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import concurrent.futures

def func1():
    # код функции

def func2():
    # код функции

if __name__ == '__main__':
    with concurrent.futures.ThreadPoolExecutor() as executor:
        executor.submit(func1)
        executor.submit(func2)


Оба примера создают два процесса (или потока) и параллельно выполняют две функции func1 и func2. В случае multiprocessing процессы запускаются с помощью start(), а затем присоединяются с помощью join(). В случае concurrent.futures процессы запускаются с помощью submit().