【发布时间】:2017-11-06 14:20:03
【问题描述】:
好像asyncio.Queue只能被同一个线程推送读取吧?例如:
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())
只打印
consumed 0
然后挂起。我错过了什么?
【问题讨论】:
标签: python multithreading async-await python-multithreading python-asyncio