Les primitives de synchronisation ne rendent pas votre code synchrone, elles synchronisent les coroutines de votre code.
Quelques exemples :
- Vous pouvez vouloir démarrer/continuer certaines coroutines seulement lorsque qu'une autre coroutine le permet (
asyncio.Event
)
- Vous pouvez vouloir qu'une partie de votre code soit exécutée uniquement par une seule coroutine à la fois et que les autres attendent leur tour (
asyncio.Lock
)
- Vous pouvez vouloir qu'une partie de votre code soit exécutée uniquement par un nombre limité de coroutines en même temps (
asyncio.Semaphore
)
Jetez un œil à un exemple pratique de l'utilisation de asyncio.Semaphore
.