TGViewer
Python ментор Python ментор @python_dev_mentor · 533 subscribers
Post #17 1.18K
Python ментор #interview, #multithreading Пришло время для примеров, и начнем с того, как применять многопоточность! В Python, для этого обычно используется модуль threading, однако в большинстве случаев более удобным выбором будет использовать concurrent.futures. Давайте…
#python, #multiprocessing

За многопроцесность, в python отвечает модуль multiprocessing, ничего устанавливать не надо, просто импортируем.

Внимание на картинки❗️У нас есть какая-то задача cpu_bound, она считает сумму всех чисел от 0 до number и нагружает процессор.Циклы и математические операции - это все cpu-bound задачи. В самом по себе цикле, нет ничего необычного и это не должно стать проблемой для вашего компьютера. Но если в цикле больше 100 миллиона итераций (как в примере) выполнение такой функци может занять существенное время!

На первой картинке мы просто выполняем эту функцию 2 раза последовательно.

А на второй картинке пользуемся multiprocessing.Pool он, создает несколько процессов (регулируется параметром processes ) и каждый процесс выполняет свою cpu_bound задачку.

В данном случае второй код работает примерно в 2 раза быстрее, проверьте сами! Это происходит потому что потому что задачи выполняются параллельно и независимо друг от друга!

Буду с вами честен, на практике этот модуль удается применить крайне редко, лично я помню только 2 случая за 6 лет, когда я смог таким образом ускорить программу. Но это не значит, что модуль multiprocessing бесполезен! Распространенный пример: запустить какой-то процесс в фоне, чтобы не блокировать сложной cpu-bound задачей ваш код. Я покажу вам супер классный пример использования процессов в питоне, когда мы будем разбирать асинхронность!
  • 👍 12
  • 💯 3
  • 🤝 3
  • 👨‍💻 1
More from @python_dev_mentor
  1. Oct 16, 2024Здарова всем ✌️ В этом месяце я сам начал активно готовиться к собеседованиям и решил подт…
  2. Oct 9, 2024Python ментор pinned a photo
  3. Oct 9, 2024Три недели назад мы с Сашей @a_krasilov (он был первый кто, сделал задание), приступили к…
  4. Oct 2, 2024Так получилось, что в видео я смешал свою личную историю (не базированную 😱) с базой 🐘,…
  5. Oct 1, 2024Недавно сделал тестовое задание, первый раз за 6 лет! Не занимался этим с момента поиска п…
  6. Sep 23, 2024На выходных написал мой бывший ученик — прошел год с тех пор, как мы закончили работу над…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →