似乎只有相同的线程才能推送
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
然后程序就无响应了,我错过了什么吗?
get_event_loop
并不适用于此。 - Jonas Byström