← All benchmarksPython

Python asyncio vs threads vs sequential: 0.10 s vs 0.5 s vs 10.4 s

How much faster is asyncio than sequential calls in Python?

For 100 calls that each wait 100 ms (simulated with sleep), sequential code took 10.4 s, a 20-thread pool 0.5 s and asyncio.gather 0.10 s.

Results

sequential10.4 s
ThreadPoolExecutor(20)0.5 s
asyncio.gather0.10 s

How it was measured

100 simulated I/O waits of 100 ms. Not real HTTP.

await asyncio.gather(*(call(i) for i in range(100)))

Why

While one task waits on I/O, others run, so the waits overlap.

When this does not apply

No help for CPU-bound work. Real network calls add variance.

Environment

MacBook Air (Apple silicon, 8 cores), macOS, Python 3.9. Measured 2026-10-12.

Source: shorts/demo-ticket/w2/aio.py in my content-engine repository. Treat any single run as a direction; re-run it on your hardware.

By Josué Barros, senior software engineer (full-stack, data and AI).