Вопросы, которые могут задать на собеседовании Senior Python Developer.
Проверьте себя без помощи поисковиков!
❓Что такое GIL (Global Interpreter Lock) и как он влияет на многопоточность в Python?
Пример кода:
import threading
def worker():
print("Работа в потоке")
# Создание и запуск потока
thread = threading.Thread(target=worker)
thread.start()
thread.join()
❗️Ответ:
GIL — это механизм в интерпретаторе CPython, который позволяет выполнять только один поток Python одновременно, даже на многоядерных процессорах. Это ограничение связано с тем, что управление памятью в CPython не является потокобезопасным. GIL может стать узким местом в CPU-зависимых задачах, но не влияет на I/O-зависимые операции. Для обхода GIL можно использовать многопроцессорность (модуль multiprocessing) или альтернативные реализации Python, такие как Jython или IronPython.
Для самых дотошных ссылка на документацию по GIL.
