← 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
| sequential | 10.4 s |
|---|---|
| ThreadPoolExecutor(20) | 0.5 s |
| asyncio.gather | 0.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).