Встречается на собеседованиях • сегодня
Как задействован GIL при уничтожении объектов в Python
GIL (Global Interpreter Lock) играет ключевую роль при уничтожении объектов в Python, особенно в контексте сборки мусора. В CPython GIL защищает процесс освобождения памяти от race conditions, так как счетчики ссылок (refcount) и механизмы сборки мусора не являются потокобезопасными.
При уничтожении объекта:
- GIL блокируется перед изменением счетчика ссылок.
- Если счетчик достигает нуля, вызывается деструктор (
__del__) и освобождается память. - GIL разблокируется после завершения операции.
Пример:
python
import threading
class Temp:
def __del__(self):
print("GIL locked during destruction")
obj = Temp()
del obj # Уничтожение под защитой GILВажно: GIL не предотвращает все проблемы с памятью - циклические ссылки требуют дополнительного механизма (GC), который также работает под GIL.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы