Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Asynchrone Programmering Begrijpen | Asynchronous Programming
Python Structureel Programmeren

Asynchrone Programmering Begrijpen

Veeg om het menu te tonen

Asynchronous programming is een manier om programma's te schrijven die meerdere taken schijnbaar tegelijkertijd kunnen uitvoeren, zonder te hoeven wachten tot elke taak is voltooid voordat de volgende begint. Dit is vooral nuttig voor taken die veel tijd besteden aan wachten, zoals het lezen van bestanden, het maken van netwerkverzoeken of het werken met databases. In plaats van je programma te blokkeren terwijl het wacht op het voltooien van een taak, stelt asynchrone programmeren je code in staat om andere taken te blijven uitvoeren.

Het hart van het asynchrone programmeermodel van Python is de event loop (evenementlus). De event loop is verantwoordelijk voor het beheren en plannen van taken die klaar zijn om uitgevoerd te worden. Het houdt alle taken bij, controleert welke wachten op iets (zoals invoer of een timer), en voert de taken uit die klaar zijn. Hierdoor kan je programma vooruitgang boeken met meerdere taken zonder dat er meerdere threads of processen nodig zijn.

Een belangrijk bouwblok van asynchrone programmeren in Python is de coroutine. Coroutines zijn speciale functies die worden gedefinieerd met async def. Ze kunnen hun uitvoering op bepaalde punten pauzeren met het await-sleutelwoord, wat de event loop vertelt om andere taken uit te voeren terwijl er op iets wordt gewacht. Wanneer de afgewachte bewerking is voltooid, hervat de event loop de coroutine precies waar deze was gebleven.

Door gebruik te maken van de event loop en coroutines kun je code schrijven die efficiënt en responsief is, vooral voor I/O-gebonden programma's. Deze aanpak verschilt van traditionele threading of multiprocessing omdat het de overhead van het aanmaken van meerdere threads of processen vermijdt, en in plaats daarvan vertrouwt op de event loop om te bepalen wanneer elke taak wordt uitgevoerd.

import asyncio

async def greet_after_delay():
    print("Hello...")
    await asyncio.sleep(2)  # Pause here, let event loop run other tasks
    print("...world!")

# To actually run the coroutine, you need to use the event loop:
asyncio.run(greet_after_delay())

Uitvoer:

Hello...
...world!
question mark

Welke van de volgende beschrijvingen geeft het beste de rol van de event loop in asynchroon programmeren met Python weer?

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 1

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 4. Hoofdstuk 1
some-alt