Sobes.tech
Junior — Middle

Leg het principe van werking van coroutines uit en hoe ze tijdens de uitvoering worden beheerd.

sobes.tech AI

Antwoord van AI

Coroutines zijn functies die hun uitvoering kunnen onderbreken en later hervatten, terwijl ze hun toestand behouden. In Python worden coroutines geïmplementeerd met het sleutelwoord async def en worden ze beheerd via een event loop.

Tijdens de uitvoering kan een coroutine "wachten" (await) tot een asynchrone operatie voltooid is, waardoor de controle wordt vrijgegeven aan andere taken. Dit maakt het mogelijk om efficiënt te werken met invoer/uitvoer-operaties zonder de thread te blokkeren.

Voorbeeld van een eenvoudige coroutine:

import asyncio

async def say_hello():
    print("Hallo")
    await asyncio.sleep(1)  # pauzeert de coroutine voor 1 seconde
    print("Wereld")

asyncio.run(say_hello())

Hier geeft await de controle over aan de event loop, die kan schakelen tussen andere coroutines en zo asynchroniteit garanderen.

Op deze manier maken coroutines het schrijven van asynchrone code die op synchronische code lijkt mogelijk, en vereenvoudigen ze het beheer van parallelle taken.