Встречается на 1% собеседований по Python
Как работает асинхронность при использовании потоков
В Python потоки (threading) реализуют асинхронность через переключение между потоками, но из-за GIL (Global Interpreter Lock) только один поток выполняет Python-код одновременно. Это делает потоки эффективными для I/O-bound задач, но не для CPU-bound.
Пример с потоками:
python
import threading
import time
def task(name):
print(f"Task {name} started")
time.sleep(2) # Имитация I/O операции
print(f"Task {name} finished")
threads = []
for i in range(3):
t = threading.Thread(target=task, args=(i,))
t.start()
threads.append(t)
for t in threads:
t.join()
text
Ключевые моменты:
- Потоки выполняются параллельно, но GIL ограничивает параллельное выполнение Python-кода
- Подходят для операций, где есть ожидание (сеть, файлы, sleep)
- Общая память между потоками требует синхронизации (Lock, RLock)
- Переключение между потоками происходит автоматически планировщиком ОС
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы