Русский
Открыть в Telegram

Пост Модуль multiprocessing в Python: потоки против процессов

21 июля 2026
Б
Библиотека Python разработчика | Книги по питону
Модуль multiprocessing в Python: потоки против процессов Модуль multiprocessing позволяет создавать не только процессы, но и потоки. Однако стоит помнить о главной особенности CPython — GIL (Global Interpreter Lock). Этот механизм блокирует выполнение байт-кода Python несколькими потоками одновременно. Это означает, что потоки полезны в основном в случаях, когда программа выполняет операции, не связанные с Python-интерпретатором, например, ожидание ввода-вывода (IO). К примеру, загрузка трёх различных статей из Википедии будет одинаково эффективной как с потоками, так и с процессами. Причём результат в три раза быстрее по сравнению с выполнением задачи в одном процессе: from multiprocessing import Pool from multiprocessing.pool import ThreadPool import requests def download_wiki_article(article): url = 'http://de.wikipedia.org/wiki/' return requests.get(url + article) process_pool = Pool(3) thread_pool = ThreadPool(3) thread_pool.map(download_wiki_article, ['a', 'b', 'c']) # ~376 ms process_pool.map(download_wiki_article, ['a', 'b', 'c']) # ~373 ms [download_wiki_article(a) for a in ['a', 'b', 'c']] # ~1.09 s Однако использование потоков для задач, нагружающих CPU, практически бессмысленно: import math from multiprocessing import Pool from multiprocessing.pool import ThreadPool def f(x): return len(str(math.factorial(x))) process_pool = Pool(4) thread_pool = ThreadPool(4) inputs = [i ** 2 for i in range(100, 130)] [f(x) for x in inputs] # ~1.48 s thread_pool.map(f, inputs) # ~1.48 s process_pool.map(f, inputs) # ~478 ms При задачах, требующих интенсивных вычислений, использование процессов вместо потоков даст значительный прирост производительности благодаря распределению нагрузки между несколькими ядрами процессора. 📲 Мы в MAX 👉@BookPython
5 · 1.2K ·

Рядом в ленте

ББиблиотека Python разработчика | Книги по питонуКогда вам нужно очистить список в Python, вы, скорее всего, используете lst = []. Однако на самом деле вы просто создаёте новый пустой список и присваиваете егоББиблиотека Python разработчика | Книги по питонуКак ускорить вычисления в Python с помощью multiprocessing.Pool Когда речь заходит о ресурсоемких задачах, которые нагружают ваш CPU, стоит обратить внимание на
это сообщение
ББиблиотека Python разработчика | Книги по питону📌 О представлении данных в байтах в Python Когда мы храним данные в памяти или на устройстве хранения, их необходимо представить в виде байтов. Python позволяетББиблиотека Python разработчика | Книги по питону🔑 Использование объектов в качестве ключей словаря в Python В Python вы можете использовать любой объект в качестве ключа словаря, если он реализует метод __has
ББиблиотека Python разработчика | Книги по питонуБиблиотека Python разработчика | Книги по питону@BookPython · канал · Технологии
17 954подписчиков552средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем