Sobes.tech
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 объектисини қайтариб олади Корутинанинг натижасини қайтариб олади
Фон режимда ишга тушириш Секвенцион ишга тушириш

Кўпкорутинани параллел (асинхрон) ишга тушириш учун қўлланилади.