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 օբյեկտ Վերադարձնում է կորուտինայի արդյունքը
Հնարավորություն է տալիս ֆոնային կատարմամբ Հետևողական կատարմամբ

Օգտագործվում է միաժամանակյա (ասինխրոն) մի քանի կորուտինաների կատարման համար։