async

In Python, the async keyword lets you define asynchronous functions, loops, context managers, generators, and iterators. All these objects allow you to write code that performs non-blocking operations, which is particularly useful for I/O-bound and high-level structured network code.

Python async Keyword Examples

Here’s a simple example demonstrating how to use the async keyword:

Python hello.py
import asyncio

async def greet():
    print("Hello")
    await asyncio.sleep(1)
    print("World!")

asyncio.run(greet())

In this example, greet() is an asynchronous function that you define with the async keyword. Inside this function, the await keyword waits one second using asyncio.sleep(1). Other asynchronous tasks can run during the waiting period, which is the base of the non-blocking behavior.

Python async Keyword Use Cases

  • Writing asynchronous functions that can be paused and resumed
  • Managing I/O-bound tasks like network requests, file operations, or database queries
  • Improving the performance of programs by allowing other tasks to run while waiting for an operation to complete

Tutorial

Async IO in Python: A Complete Walkthrough

This tutorial will give you a firm grasp of Python’s approach to async IO, which is a concurrent programming design that has received dedicated support in Python, evolving rapidly from Python 3.4 through 3.7 (and probably beyond).

intermediate python

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


By Leodanis Pozo Ramos • Updated Jan. 6, 2025 • Reviewed by Dan Bader