Middle
функсияи create_task() чӣ гуна аст?
sobes.tech AI
Ҷавоб аз AI
asyncio.create_task() функциясы Task объектисин яратат ва фон режимда ишга тушириладиган асинхрон функциясини (корутинани) воқеалар циклда режалаштиради. У Task объектисини қайтариб, уни корутинанинг натижасини олиш ёки уни бекор қилиш учун ишлатиш мумкин.
import asyncio
async def my_coroutine():
print("Корутина бошланди")
await asyncio.sleep(1)
print("Корутина тугади")
return "Тайёр"
async def main():
print("Вазифа яратиш")
task = asyncio.create_task(my_coroutine())
print("Вазифа яратилди")
# Бошқа операциялар ҳам бажарилиши мумкин, вазифа ишлаётганда
await asyncio.sleep(0.5)
print("Бошқа операциялар бажарилмоқда")
# Вазифа якунланишини кутинг ва натижани олинг
result = await task
print(f"Вазифа натижаси: {result}")
asyncio.run(main())
Асосий хусусиятлар:
- Блокламай ишга тушириш: Корутинани бошлайди ва унинг тугашини кутмайди.
Taskқайтариб олади: Бошланган корутинанинг ишини бошқариш имконини беради.- Режалаштириш: Корутинани воқеалар циклга қўшади.
await my_coroutine() билан фарқи:
create_task() |
await my_coroutine() |
|---|---|
| Ишга туширишни блокламайди | Блоклайди тўлиқ тугашигача |
Task объектисини қайтариб олади |
Корутинанинг натижасини қайтариб олади |
| Фон режимда ишга тушириш | Секвенцион ишга тушириш |
Кўпкорутинани параллел (асинхрон) ишга тушириш учун қўлланилади.