TGViewer
Zen of Python Zen of Python @zen_of_python · 18.8K subscribers
Post #5039 746
Как выполнять CPU-задачи в отдельных интерпретаторах Python

В Python 3.14 InterpreterPoolExecutor запускает потоки с отдельными интерпретаторами. У каждого свой GIL, поэтому вычисления на Python могут одновременно занимать несколько ядер в одном процессе.

У этой модели есть цена: между интерпретаторами передаются сериализованные функции, аргументы и результаты. Импорты и глобальные переменные изолированы. Кеш на уровне модуля станет кешем каждого работника; большая таблица данных может занять память несколько раз.

Подход подходит для достаточно крупных вычислительных задач с простыми входами и выходами. На мелких операциях передачу данных легко сделать дороже вычислений. Перед переносом проверьте совместимость C-расширений и сравните время и память с ProcessPoolExecutor на реальной нагрузке.

#python #производительность
More from @zen_of_python
  1. Oct 8, 2026Почему цикл внутри теста скрывает часть ошибок Тест перебирает десять входов и проверяет р…
  2. Oct 8, 2026Как отличить отсутствие аргумента от None в Python Если None — допустимое значение настрой…
  3. Oct 7, 2026security.txt в Django: контакт для сообщений об уязвимостях Исследователь нашёл уязвимость…
  4. Oct 6, 2026Как открывать ссылки Django-сайта в приложениях Apple и Android Для этого нужна двусторонн…
  5. Oct 6, 2026Как собрать Rust-проект с Python-модулем и отдельной программой В пошаговом примере кальку…
  6. Oct 6, 2026Как упаковать Python-проект в библиотеку и CLI Копирование модулей и правки sys.path можно…
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 →