Встречается на собеседованиях • сегодня
В чем разница между асинхронностью с использованием потоков и asyncio
Основное отличие в подходе к параллелизму:
-
Потоки (threading) используют системные потоки ОС, что приводит к накладным расходам на переключение контекста и проблемам с GIL (Global Interpreter Lock) в CPU-bound задачах. Подходят для I/O-bound операций, но требуют синхронизации.
-
Asyncio использует кооперативную многозадачность в одном потоке через event loop. Корутины (async/await) добровольно отдают управление, что эффективнее для I/O-bound операций. Нет проблем с GIL, но блокирующий код "ломает" event loop.
Пример asyncio:
python
async def fetch_data():
await asyncio.sleep(1)
return "data"
async def main():
result = await fetch_data()
print(result)
asyncio.run(main())Пример threading:
python
from threading import Thread
def fetch_data():
time.sleep(1)
return "data"
def main():
thread = Thread(target=fetch_data)
thread.start()
thread.join()Asyncio лучше для высоконагруженных I/O сервисов, threading — когда нужна совместимость с блокирующим кодом.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы