Async Python ist ideal für I/O-gebundene Operationen — HTTP-Requests, Datenbanken, Datei-I/O. Ein Thread, Tausende gleichzeitiger Operationen.
Grundlagen asyncio¶
import asyncio async def fetch_data(url: str) -> dict: async with aiohttp.ClientSession() as session: async with session.get(url) as response: return await response.json() async def main():
Gleichzeitige Requests¶
urls = [“https://api.example.com/1”, “https://api.example.com/2”] results = await asyncio.gather(*[fetch_data(u) for u in urls]) return results asyncio.run(main())
Wann Async verwenden¶
- HTTP-Requests (aiohttp, httpx)
- Datenbankabfragen (asyncpg, databases)
- Datei-I/O
- WebSocket-Server
- NICHT für CPU-gebundene Operationen (verwenden Sie Multiprocessing)
Wichtigste Erkenntnis¶
Async für I/O-gebundene Aufgaben, Multiprocessing für CPU-gebundene. asyncio.gather für gleichzeitige Operationen.