Встречается на собеседованиях • сегодня
Какие проблемы могут возникнуть при использовании многопоточности
В 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
интервью вопросы и ответы