Встречается на собеседованиях • сегодня
Блокирует ли GIL процессы в Python
GIL (Global Interpreter Lock) блокирует не процессы, а потоки в рамках одного процесса. Это механизм, который предотвращает параллельное выполнение байт-кода Python в нескольких потоках одного процесса.
Пример:
python
import threading
def count():
n = 0
for _ in range(10_000_000):
n += 1
print(n)
Два потока выполняются последовательно из-за GIL
t1 = threading.Thread(target=count)
t2 = threading.Thread(target=count)
t1.start()
t2.start()
t1.join()
t2.join()
text
**Нюансы:**
- GIL не влияет на мультипроцессинг (`multiprocessing`), так как каждый процесс имеет свой GIL.
- Блокировка снимается при I/O операциях (чтение файлов, сетевые запросы).
- C-расширения могут освобождать GIL для выполнения CPU-интенсивных задач.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы