Программы на Python
-
Anonymous
Асинхронный производитель/потребитель работает последовательно
Сообщение
Anonymous »
Я начинаю работать с asyncio и создал это:
Код: Выделить всё
import asyncio
async def handle_data(q):
while (item := await q.get()) is not None:
print(f'Consuming {item}')
async def main():
q = asyncio.Queue()
consumer = asyncio.create_task(handle_data(q))
for k in range(10):
print(f'Producing {k}')
await q.put(k)
await q.put(None)
await consumer
asyncio.run(main())
Вывод скрипта
Код: Выделить всё
Producing 0
Producing 1
Producing 2
Producing 3
Producing 4
Producing 5
Producing 6
Producing 7
Producing 8
Producing 9
Consuming 0
Consuming 1
Consuming 2
Consuming 3
Consuming 4
Consuming 5
Consuming 6
Consuming 7
Consuming 8
Consuming 9
Почему код выполняется синхронно?
Подробнее здесь:
https://stackoverflow.com/questions/791 ... g-serially
1730005265
Anonymous
Я начинаю работать с asyncio и создал это:
[code]import asyncio
async def handle_data(q):
while (item := await q.get()) is not None:
print(f'Consuming {item}')
async def main():
q = asyncio.Queue()
consumer = asyncio.create_task(handle_data(q))
for k in range(10):
print(f'Producing {k}')
await q.put(k)
await q.put(None)
await consumer
asyncio.run(main())
[/code]
Вывод скрипта
[code]Producing 0
Producing 1
Producing 2
Producing 3
Producing 4
Producing 5
Producing 6
Producing 7
Producing 8
Producing 9
Consuming 0
Consuming 1
Consuming 2
Consuming 3
Consuming 4
Consuming 5
Consuming 6
Consuming 7
Consuming 8
Consuming 9
[/code]
Почему код выполняется синхронно?
Подробнее здесь: [url]https://stackoverflow.com/questions/79129912/async-producer-consumer-running-serially[/url]