Junior — Middle
66
Какова роль объекта Future в библиотеке asyncio и зачем он используется?
Answer from AI
sobes.tech AI
В библиотеке asyncio в Python объект Future представляет собой контейнер для результата асинхронной операции, которая может завершиться в будущем. Он используется для отслеживания состояния и получения результата задачи, которая еще не выполнена.
Роль Future:
- Позволяет зарегистрировать колбэки, которые будут вызваны при завершении операции.
- Обеспечивает механизм ожидания результата (через await).
- Служит основой для реализации корутин и задач в asyncio.
Пример использования:
import asyncio
async def main():
loop = asyncio.get_running_loop()
future = loop.create_future()
# Симулируем завершение операции через 1 секунду
loop.call_later(1, future.set_result, 'Результат готов')
result = await future
print(result) # Выведет: Результат готов
asyncio.run(main())
Таким образом, Future — это способ работать с результатами асинхронных операций, не блокируя основной поток.