Python Async/Await — Explain Like I'm 5

One Chef, Many Pots

Imagine one chef cooking dinner.

If the chef puts pasta in water and then just stares at the pot for 10 minutes, dinner takes forever. A smart chef does this instead:

  1. start pasta
  2. while water boils, chop vegetables
  3. while vegetables roast, make sauce
  4. keep switching when each thing is ready

That is what async and await do for Python.

Your program often waits for slow stuff:

  • downloading from the internet
  • reading from a database
  • asking another service for data

During waiting time, await tells Python: “I’m paused here. Go do another task.”

So Python can keep one worker busy with many jobs.

import asyncio

async def make_tea(name, wait_seconds):
    print(f"Start {name}")
    await asyncio.sleep(wait_seconds)
    print(f"Done {name}")

async def main():
    await asyncio.gather(
        make_tea("Green tea", 2),
        make_tea("Black tea", 1),
    )

asyncio.run(main())

Both tea tasks move forward together. The program is not frozen on one wait.

What async is great for

Async is excellent for jobs with lots of waiting:

  • web APIs
  • chat servers
  • bots
  • crawlers fetching many pages

It is not for heavy math work. If the CPU is busy calculating nonstop, async does not create extra CPU power.

One Thing to Remember

async + await lets Python use waiting time wisely, so one program can keep many slow I/O tasks moving at the same time.

pythonasyncawaitbeginners

See Also

  • Python Basics Python is the programming language that reads like plain English — here's why millions of beginners (and experts) choose it first.
  • Python Booleans Make Booleans click with one clear analogy you can reuse whenever Python feels confusing.
  • Python Break Continue Make Break Continue click with one clear analogy you can reuse whenever Python feels confusing.
  • Python Closures See how Python functions can remember private information, even after the outer function has already finished.
  • Python Comprehensions See how Python lets you build new lists, sets, and mini lookups in one clean line instead of messy loops.