clemenssielaff / async-minus-await

Ergänzendes Material zum Artikel "Async Minus Await"

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ergänzendes Material zum Artikel "Asynchrones Programmieren: async minus await".

Sie finden den gesamten Quelltext des Artikels in der Datei async.py.

Jeder tag in diesem Repo ist eine Momentaufnahme zu dem der Code funktionsfähig ist:

Hier können Sie beliebige Tags miteinander vergleichen.

asyncio Referenz

Zum Vergleich mit der letzten Version von async.py, hier eine alternative Implementierung mit Python's built-in asyncio module und den async und await keywords:

import asyncio


async def producer(n: int, queue: asyncio.Queue):
    while n >= 0:
        queue.put_nowait(n)
        await asyncio.sleep(1)
        n -= 1


async def consumer(name: str, queue: asyncio.Queue):
    while True:
        result = await queue.get()
        print(name, result)
        if result == 0:
            return


async def main():
    bobs_queue = asyncio.Queue()
    alices_queue = asyncio.Queue()
    await asyncio.gather(
        asyncio.create_task(producer(3, bobs_queue)),
        asyncio.create_task(consumer("Alice", alices_queue)),
        asyncio.create_task(consumer("Bob", bobs_queue)),
        asyncio.create_task(producer(3, alices_queue)),
    )


asyncio.run(main())

About

Ergänzendes Material zum Artikel "Async Minus Await"


Languages

Language:Python 100.0%