Встречается на собеседованиях • сегодня
Какие знаешь ограничения у threads
В Python потоки (threads) имеют несколько ключевых ограничений из-за Global Interpreter Lock (GIL):
-
GIL ограничивает параллельное выполнение Python-кода – только один поток может исполнять байткод Python в один момент времени. Это делает потоки неэффективными для CPU-задач.
-
Не подходят для CPU-bound задач – если задача требует интенсивных вычислений, потоки не ускорят её выполнение. Лучше использовать процессы (
multiprocessing).
-
Проблемы с shared state – общая память между потоками требует синхронизации (например, через
Lock), иначе возможны race conditions. -
Не всегда завершаются корректно – при завершении главного потока дочерние могут оборваться без завершения работы.
Пример:
python
import threading
counter = 0
def increment():
global counter
for _ in range(100000):
counter += 1 # Race condition без Lock!
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 из-за гонки данных
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы