Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Когда выйдет(и выйдет ли вообще) Python4 без GIL? Можно ли отключить GIL в Python 3.11 / 3.12.a4 и если можно, то как?

Можно ли создать в текущей версии Python (и как, если возможно) создать НЕЗАВИСИМЫЕ потоки(т.е. когда поток 1 работает, поток n не заблокирован GIL) с ОБЩЕЙ памятью(т.е. чтобы не запускалось n интерпретаторов, занимающие большой объём ОЗУ в сумме).
ПрограммированиеPython+2
Анонимный вопрос
Python Q
  · 6,5 K
Платные прокси – это отличное решение для тех, кто привык экономить свое время и...  · 21 февр 2023  · proxys.io
На данный момент нет конкретных планов на выпуск Python 4 без GIL. Разработчики Python работают над улучшением многопоточности в текущих версиях Python, включая версию 3.11.
Существуют попытки отключения GIL в нескольких вариантах Python, но эти попытки имеют свои недостатки и риски, включая потенциальные проблемы с совместимостью, производительностью и безопасностью. Отключение GIL может привести к усложнению программирования многопоточных приложений и повышению вероятности ошибок при работе с общей памятью.
В текущих версиях Python (3.x) можно создавать несколько независимых потоков с общей памятью при помощи стандартной библиотеки threading. Однако, из-за наличия GIL, только один поток может выполняться одновременно, что может существенно замедлить производительность программы.
Есть несколько способов обойти ограничения GIL в Python:
  1. Использование multiprocessing вместо threading. В этом случае процессы могут работать независимо друг от друга и не подвержены GIL. Однако, процессы имеют большие накладные расходы на обмен данными и требуют дополнительных ресурсов.
  2. Использование библиотеки asyncio для асинхронного программирования. В этом случае, вместо создания отдельных потоков, программа может использовать асинхронные функции и событийный цикл для выполнения нескольких задач параллельно.
  3. Использование C-расширений, написанных с помощью GIL-безопасных API, которые позволяют избежать блокировки GIL.
Независимо от того, какой подход вы выберете, важно понимать ограничения и риски, связанные с работой без GIL в Python, и использовать соответствующие инструменты и методы программирования, чтобы избежать проблем.
Прокси от PROXYS.IO – это образец надежности и стабильностиПерейти на proxys.io/ru
Анонимный комментарий
21 февраля 2023
multiprocessing жрёт память по 10+ мб на  пустой интерпретатор без возможности сделать память общей(особенно... Читать дальше
Программист на Python, инвестор, энтузиаст  · 21 февр 2023
Если сильно упростить, то никто не будет убирать GIL из Python, потому что для этого нужно с нуля переписать интерпретатор. Также, GIL вас уберегает от утечек памяти (а если сами умеете с памятью работать, то вам дорога в C/C++). Python4 если будет, то будет не очень скоро, сам Гвидо Ван Россум говорил, что переход со второй версии на третью был очень болезненным и... Читать далее
Анонимный комментарий
21 февраля 2023
GIL не предотвращает утечки памяти… Их и с GIL можно создать…