Back to questions
Junior — Middle
76
Можете объяснить принцип работы асинхронных методов в программировании и чем они отличаются от синхронных?
Companies where asked
Ubic
Инновационный центр Безопасный транспорт
Answer from AI
sobes.tech AI
Асинхронные методы позволяют выполнять операции, не блокируя основной поток выполнения программы. В Python это достигается с помощью ключевых слов async и await.
Принцип работы:
- Асинхронный метод объявляется с помощью
async def. - Внутри такого метода можно использовать
awaitдля вызова других асинхронных операций, которые могут занять время (например, запросы к сети, чтение файлов). - Когда выполнение доходит до
await, управление возвращается вызывающему коду, позволяя выполнять другие задачи, пока ожидается результат.
Отличия от синхронных методов:
- Синхронный метод блокирует выполнение, пока не завершится операция.
- Асинхронный метод позволяет программе не простаивать и эффективно использовать время ожидания.
Пример:
import asyncio
async def fetch_data():
print("Начинаю загрузку")
await asyncio.sleep(2) # имитация долгой операции
print("Загрузка завершена")
async def main():
await fetch_data()
asyncio.run(main())
В этом примере asyncio.sleep не блокирует весь поток, а позволяет выполнять другие задачи во время ожидания.