Встречается на 1% собеседований по Python
Какие знаешь проблемы, когда все потоки имеют доступ к глобальной переменной
Основная проблема — состояние гонки (race condition), когда несколько потоков одновременно изменяют глобальную переменную, приводя к неожиданным результатам.
Пример:
python
import threading
counter = 0
def increment():
global counter
for _ in range(100000):
counter += 1
threads = []
for _ in range(10):
t = threading.Thread(target=increment)
threads.append(t)
t.start()
for t in threads:
t.join()
print(counter) # Может быть меньше 1_000_000 из-за race condition
text
**Другие проблемы:**
- **Инверсия приоритетов** — один поток может надолго заблокировать доступ.
- **Deadlock** — если глобальные переменные используются для синхронизации.
- **Неочевидные баги** — сложно отследить, где и как меняется состояние.
**Решение:**
Использовать `threading.Lock`, `threading.RLock` или другие механизмы синхронизации.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы