За многопроцесность, в python отвечает модуль
multiprocessing, ничего устанавливать не надо, просто импортируем.Внимание на картинки❗️У нас есть какая-то задача
cpu_bound, она считает сумму всех чисел от 0 до number и нагружает процессор.Циклы и математические операции - это все cpu-bound задачи. В самом по себе цикле, нет ничего необычного и это не должно стать проблемой для вашего компьютера. Но если в цикле больше 100 миллиона итераций (как в примере) выполнение такой функци может занять существенное время!На первой картинке мы просто выполняем эту функцию 2 раза последовательно.
А на второй картинке пользуемся
multiprocessing.Pool он, создает несколько процессов (регулируется параметром processes ) и каждый процесс выполняет свою cpu_bound задачку.В данном случае второй код работает примерно в 2 раза быстрее, проверьте сами! Это происходит потому что потому что задачи выполняются параллельно и независимо друг от друга!
Буду с вами честен, на практике этот модуль удается применить крайне редко, лично я помню только 2 случая за 6 лет, когда я смог таким образом ускорить программу. Но это не значит, что модуль multiprocessing бесполезен! Распространенный пример: запустить какой-то процесс в фоне, чтобы не блокировать сложной cpu-bound задачей ваш код. Я покажу вам супер классный пример использования процессов в питоне, когда мы будем разбирать асинхронность!

