11 месяцев назад
Модули multiprocessing и threading в Python
multiprocessing Модуль multiprocessing в Python предоставляет возможности для работы с многопроцессорным программированием, позволяя создавать и управлять процессами, обмениваться данными между процессами, использовать пулы процессов и другие механизмы для параллельного выполнения задач. Некоторые ключевые функции и классы модуля multiprocessing: Использование модуля multiprocessing позволяет эффективно использовать ресурсы многопроцессорной системы, ускорить выполнение задач и реализовать параллельное выполнение вычислений...
Запуск двух процессов в Python. multiprocessing — это пакет, поддерживающий порождение процессов с использованием API, аналогичный модулю threading / процессный параллелизм Пакет multiprocessing предлагает как локальный, так и удаленный параллелизм, эффективно обходя Глобальную блокировку интерпретатора за счёт использования подпроцессов вместо потоков. Благодаря этому, модуль multiprocessing позволяет программисту полностью использовать несколько процессоров на компьютере. Он работает как в Unix, так и в Windows. Простым примером использования нескольких процессов могут быть два процесса, которые выполняются отдельно. В этом примере запускаются два процесса: countUp() отсчитывает единицу вверх каждую секунду, countdown() – единицу вниз каждую секунду. import multiprocessing import time from random import randint def countUp():   i = 0   while i <= 3:    print('Up:\t{}'.format(i))    time.sleep(randint(1, 3)) # sleep 1, 2 or 3 seconds    i += 1 def countDown():   i = 3   while i >= 0:    print('Down:\t{}'.format(i))    time.sleep(randint(1, 3)) # sleep 1, 2 or 3 seconds    i -= 1 if __name__ == '__main__':   # Initiate the workers.   workerUp = multiprocessing.Process(target=countUp)   workerDown = multiprocessing.Process(target=countDown)   # Start the workers.   workerUp.start()   workerDown.start()   # Join the workers. This will block in the main (parent) process   # until the workers are complete.   workerUp.join()   workerDown.join()