Асинхронный производитель/потребитель работает последовательноPython

Программы на 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»