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