Sobes.tech
Junior — Middle

Explain the concept of Task in the asyncio module and its role in asynchronous programming in Python.

sobes.tech AI

Answer from AI

In Python's asyncio module, a Task is an object that wraps a coroutine and schedules its execution in the event loop. A Task allows running coroutines asynchronously, without blocking the main thread, and managing their execution.

The role of a Task in asynchronous programming:

  • Enables running coroutines concurrently, switching between them when waiting for I/O or other events.
  • Provides the ability to track the coroutine's state (completed, suspended, etc.).
  • Allows obtaining the result of the coroutine's execution through methods like await task.

Example of creating and starting a task:

import asyncio

async def say_hello():
    await asyncio.sleep(1)
    print("Hello")

async def main():
    task = asyncio.create_task(say_hello())
    print("Task started")
    await task  # wait for the task to complete

asyncio.run(main())

Here, asyncio.create_task() creates a Task from the coroutine say_hello(), which runs asynchronously.