Встречается на 2% собеседований по Python
Какие проблемы могут возникнуть при использовании многопоточности
В Python из-за GIL (Global Interpreter Lock) настоящая многопоточность невозможна - только один поток выполняет байт-код одновременно. Это ограничивает CPU-bound задачи.
Основные проблемы:
- Гонка данных (Race Conditions) - когда несколько потоков обращаются к общим данным без синхронизации.
- Взаимные блокировки (Deadlocks) - два и более потока бесконечно ждут друг друга.
- Инверсия приоритетов - низкоприоритетный поток удерживает ресурс, нужный высокоприоритетному.
Пример гонки данных:
python
import threading
counter = 0
def increment():
global counter
for _ in range(100000):
counter += 1
threads = [threading.Thread(target=increment) for _ in range(5)]
for t in threads:
t.start()
for t in threads:
t.join()
print(counter) # Результат меньше 500000 из-за гонкиРешение:
- Используйте
threading.Lockдля синхронизации. - Для CPU-bound задач лучше
multiprocessing. - Для I/O-bound задач подойдут
asyncioилиthreading.

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