Skip to content

asynchronous programming

Asynchronous programming is a paradigm where you write code that can handle multiple tasks concurrently without blocking the execution of your program. This approach is particularly useful for I/O-bound tasks, such as network operations or file reading, where the program might otherwise be idle while waiting for data.

Asynchronous programming can make your applications more efficient and responsive. It enables you to perform other tasks while waiting for I/O-bound tasks to complete.

In Python, asynchronous programming is primarily achieved using the asyncio library, which provides a framework for writing single-threaded concurrent code using async and await keywords.

Example

Here’s a quick example of asynchronous programming using Python’s asyncio library:

Python
>>> import asyncio

>>> async def task(name, delay):
...     print(f"{name} started")
...     await asyncio.sleep(delay)
...     print(f"{name} finished")
...

>>> async def main():
...     await asyncio.gather(
...         task("Task A", 2),
...         task("Task B", 1),
...     )
...

>>> asyncio.run(main())
Task A started
Task B started
Task B finished
Task A finished

In this example, asyncio.gather() runs both tasks concurrently. Although Task A has a longer delay, Task B finishes first while Task A is still waiting, demonstrating concurrent execution.

Tutorial

Getting Started With Async Features in Python

This step-by-step tutorial gives you the tools you need to start making asynchronous programming techniques a part of your repertoire. You'll learn how to use Python async features to take advantage of IO processes and free up your CPU.

intermediate python

For additional information on related topics, take a look at the following resources:


By Leodanis Pozo Ramos • Updated March 10, 2026 • Reviewed by Dan Bader