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 ობიექტს აბრუნებს კორუტინის შედეგს
საშუალებას აძლევს ფონზე მუშაობას სერიული შესრულება

მრავალი კორუტინის პარალელურად (ასინქრონულად) შესრულებისთვის გამოიყენება.