Встречается на 1% собеседований по Python
Какие знаешь ограничения у 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
интервью вопросы и ответы