Middle
What is the create_task() function?
sobes.tech AI
Answer from AI
The asyncio.create_task() function creates a Task object and schedules an asynchronous function (coroutine) to run in the event loop in the background. It returns a Task object, which can be used to get the result of the coroutine or cancel its execution.
import asyncio
async def my_coroutine():
print("Coroutine started")
await asyncio.sleep(1)
print("Coroutine finished")
return "Done"
async def main():
print("Creating task")
task = asyncio.create_task(my_coroutine())
print("Task created")
# You can perform other operations while the task runs
await asyncio.sleep(0.5)
print("Performing other operations")
# Wait for the task to complete and get the result
result = await task
print(f"Task result: {result}")
asyncio.run(main())
Main characteristics:
- Non-blocking execution: Starts the coroutine without waiting for it to finish.
- Returns a
Task: Allows managing the execution of the started coroutine. - Scheduling: Adds the coroutine to the event loop for execution.
Difference from await my_coroutine():
create_task() |
await my_coroutine() |
|---|---|
| Does not block the execution thread | Blocks the thread until completion |
Returns a Task object |
Returns the coroutine's result |
| Allows background execution | Sequential execution |
Used for parallel (asynchronous) execution of multiple coroutines.