#asyncio
11 éléments
asyncio.Event: synchronisation simple entre tâches
Signaler/attendre un événement de manière asynchrone.
asyncio: gather avec Semaphore et timeouts
Limiter la concurrence, gérer les délais et regrouper les résultats.
asyncio: gather avec timeouts et erreurs isolées
Lancer des tâches concurrentes avec timeout et gestion des échecs par tâche.
asyncio.run_in_executor: déplacer du bloquant dans un pool
Exécuter une fonction bloquante sans bloquer l'event loop.
asyncio.shield: protéger une tâche de l'annulation
Empêcher l'annulation d'une sous-opération tout en annulant l'appelant.
asyncio.Queue: pool de workers asynchrones
Traiter des tâches en parallèle avec une file asyncio et des workers.
asyncio: intégrer les signaux avec add_signal_handler
Relier SIGINT/SIGTERM à des callbacks non bloquants (Unix).
asyncio.TaskGroup: orchestrer et annuler proprement
Lancer plusieurs tâches; en cas d'erreur, annuler les autres (3.11+).
asyncio: exécuter un sous-processus et capturer
Lancer un processus de façon asynchrone et lire stdout/stderr.
asyncio.timeout: gérer un délai dans un bloc
Limiter la durée d'une opération avec le context manager asyncio.timeout (3.11+).
asyncio.to_thread: déplacer du code bloquant hors boucle
Exécuter une fonction bloquante dans un thread sans bloquer l'event loop.