Il semble que asyncio.Queue
ne peut être poussé que par le même fil qui le lit ? Par exemple :
import asyncio
from threading import Thread
import time
q = asyncio.Queue()
def produce():
for i in range(100):
q.put_nowait(i)
time.sleep(0.1)
async def consume():
while True:
i = await q.get()
print('consumed', i)
Thread(target=produce).start()
asyncio.get_event_loop().run_until_complete(consume())
n'imprime que
consumed 0
puis se bloque. Que me manque-t-il ?