Назад к подготовке
ВопросСредняяpython-runtimeТехническое собеседование · Teza

Python runtime: mutability, hashability, GIL и GC

Какие базовые runtime-вопросы по Python часто идут после алгоритмической задачи?

Ответить самому

Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.

Загрузка

Короткий ответ

Нужно различать mutable/immutable объекты, hashability для dict/set, влияние GIL на CPU-bound threads и роль reference counting плюс cyclic GC.

Полный разбор

Mutable объекты можно менять на месте, immutable создают новое значение при изменении. Hashable объект должен иметь стабильный hash и корректное equality-поведение, поэтому list/dict/set не подходят как ключи dict, а tuple подходит только если все элементы hashable.

GIL в CPython ограничивает параллельное исполнение Python bytecode потоками, но не отменяет race conditions и полезность threads для I/O. Память в CPython в основном освобождается reference counting, а отдельный cyclic GC нужен для циклов ссылок, которые счетчик сам не разорвет.