Gebruikershulpmiddelen

Site-hulpmiddelen


asynchroon

Asynchroon programmeren

πŸ—‚οΈ Terug naar start

πŸ”Ή Asynchroon programmeren betekent dat je meerdere functies of taken tegelijkertijd kunt uitvoeren, zonder dat je hoeft te wachten tot de vorige klaar is.
πŸ”ΉDit noemen we ook wel niet-blokkerende code: één taak kan pauzeren (bijvoorbeeld tijdens wachten op data van internet), terwijl een andere taak doorgaat.​
πŸ”ΉIn Python maak je hiervoor vaak gebruik van de asyncio-bibliotheek en de keywords async en await

nest_asyncio

Hieronder een voorbeeld (in een Class) van een werkende versie die werkt met Python en Streamlit v1.18 +. Voor oudere Streamlit versies gebruik je de β€œnest_asyncio methode”

asyncio (Streamlit v1.18 of hoger)

Een simpel code voorbeeld van werken met asyncio in Python met Streamlit als GUI. Dit werkt voor Streamlit waarvan de versie groter/hoger is dan 1.18

import asyncio

class Voorbeeld:
    def run(self):
        return asyncio.run(self.haal())

    async def haal(self):
        return await asyncio.gather(
            self.api1(),
            self.api2()
        )

    async def api1(self):
        await asyncio.sleep(1)
        return "API 1 klaar"

    async def api2(self):
        await asyncio.sleep(2)
        return "API 2 klaar"
        

v = Voorbeeld()
print(v.run())   # ['API 1 klaar', 'API 2 klaar']
asynchroon.txt Β· Laatst gewijzigd: door a3dijke