Een coroutine is een functie die gebruikt wordt voor coöperatieve multitasking, waarbij de controle expliciet door de programmeur wordt doorgegeven in plaats van te vertrouwen op het besturingssysteem. Het economiseert gebruik van bronnen door meerdere taken toe te staan om een enkele thread te delen, en stelt taken in staat om hun uitvoering op te schorten en hervatten, wat handig is bij het wachten op I/O of andere operaties die tijd vergen om te voltooien.
In Python, wordt een coroutine gedefinieerd als een functie met het sleutelwoord ‘async def’. Deze coroutine kan dan worden geroepen en zal een coroutine-object retourneren, dat vervolgens kan worden gepland om te draaien in een event loop.
Met de invoering van Python 3.5 kreeg Python ingebouwde ondersteuning voor coroutines met de ‘async’ en ‘await’ syntaxis. Deze syntaxis maakt het veel gemakkelijker om coroutines te schrijven en te beheren, en maakt de code veel leesbaarder door de noodzaak om generators en ‘yield’ statements te gebruiken voor dit doel te verminderen.