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']
