Python

 

 

Asynchronous programming in Python can make your applications more efficient and scalable, especially when dealing with tasks that involve waiting (e.g., I/O operations). The `asyncio` module in Python provides the framework to write asynchronous code that can run concurrently.

Objective

The purpose of this guide is to introduce you to Python’s `asyncio` module, which allows you to write asynchronous code with ease. By the end of this article, you’ll understand how to use `asyncio` to run multiple tasks concurrently and improve the performance of your Python programs, particularly when dealing with I/O-bound operations.

Example Code

import asyncio

# A simple asynchronous function that simulates a task with delay
async def fetch_data(name, delay):
    print(f"Task {name} started...")
    await asyncio.sleep(delay)
    print(f"Task {name} finished after {delay} seconds.")
    return f"Data from {name}"

# Main function to run the asynchronous tasks concurrently
async def main():
    task1 = fetch_data("Task 1", 2)
    task2 = fetch_data("Task 2", 1)
    task3 = fetch_data("Task 3", 3)

    # Running the tasks concurrently
    results = await asyncio.gather(task1, task2, task3)

    print("\nResults:")
    for result in results:
        print(result)

# Running the event loop
if __name__ == "__main__":
    asyncio.run(main())

Explanation of the Program Structure

The program defines three main components:

  • fetch_data(name, delay): This is an asynchronous function that simulates an I/O-bound task by using the await asyncio.sleep(delay) to pause the task for a specified amount of time.
  • main(): This is another asynchronous function where we create multiple tasks using the fetch_data() function. We run these tasks concurrently using asyncio.gather().
  • asyncio.run(main()): This runs the main() coroutine inside an event loop. The event loop ensures that all asynchronous operations are executed efficiently.

How to Run the Program

To run this program, follow these steps:

  1. Make sure you have Python 3.7+ installed on your machine.
  2. Copy the provided code into a Python file (e.g., asyncio_example.py).
  3. Open your terminal or command prompt and navigate to the directory where the file is saved.
  4. Run the program using the command: python asyncio_example.py.
  5. You’ll see the output showing the tasks running concurrently, followed by the results of each task.
© 2025 Learn Programming. All rights reserved.

 

By Aditya Bhuyan

I work as a cloud specialist. In addition to being an architect and SRE specialist, I work as a cloud engineer and developer. I have assisted my clients in converting their antiquated programmes into contemporary microservices that operate on various cloud computing platforms such as AWS, GCP, Azure, or VMware Tanzu, as well as orchestration systems such as Docker Swarm or Kubernetes. For over twenty years, I have been employed in the IT sector as a Java developer, J2EE architect, scrum master, and instructor. I write about Cloud Native and Cloud often. Bangalore, India is where my family and I call home. I maintain my physical and mental fitness by doing a lot of yoga and meditation.

Leave a Reply

Your email address will not be published. Required fields are marked *

error

Enjoy this blog? Please spread the word :)