Встречается на собеседованиях • сегодня
Решает ли GIL в Python проблему соревнования потоков
GIL (Global Interpreter Lock) в Python предотвращает одновременное выполнение байт-кода несколькими потоками, но не решает все проблемы конкурентности.
Проблемы, которые остаются:
- Race conditions: если потоки работают с общими данными, возможны конфликты даже с GIL.
- Deadlocks: взаимные блокировки потоков из-за неправильного порядка захвата ресурсов.
Пример:
python
import threading
counter = 0
def increment():
global counter
for _ in range(100000):
counter += 1 # Неатомарная операция!
threads = [threading.Thread(target=increment) for _ in range(10)]
for t in threads:
t.start()
for t in threads:
t.join()
print(counter) # Результат может быть меньше 1_000_000!Решение:
Использовать threading.Lock, multiprocessing или асинхронность (asyncio).

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