from asyncio import Queue,sleep
import asyncio
from threading import Thread
import time
qu=Queue()
#put
async def putQ():
global qu
print('start put')
i=1
while True:
print('put sleep')
await sleep(1)
print('put sleep')
await qu.put(i)
if i<=20:
print('put',i)
else:
break
i+=1
#get
async def getQ():
global qu
while True:
await sleep(0.1)
if qu.qsize() != 0:
a= await qu.get()
print('get',a)
else:
print('no get')
def start_loop(loop):
asyncio.set_event_loop(loop)
loop.run_forever()
new_loop=asyncio.new_event_loop()
t=Thread(target=start_loop,args=(new_loop,))
t.start()
# t1=asyncio.create_task(putQ())
taskput=asyncio.run_coroutine_threadsafe(putQ(),loop=new_loop)
taskget=asyncio.run_coroutine_threadsafe(getQ(),loop=new_loop)
while True:
time.sleep(1)
from asyncio import Queue,sleep
import asyncio
from threading import Thread
import time
qu=Queue()
#put
async def putQ(qu):
print('start put')
i=1
while True:
print('put sleep')
await sleep(1)
print('put sleep')
await qu.put(i)
if i<=20:
print('put',i)
else:
break
i+=1
#get
async def getQ(qu):
while True:
await sleep(0.1)
if qu.qsize() != 0:
a= await qu.get()
print('get',a)
else:
print('no get')
def start_loop(loop):
asyncio.set_event_loop(loop)
loop.run_forever()
new_loop=asyncio.new_event_loop()
t=Thread(target=start_loop,args=(new_loop,))
t.start()
# t1=asyncio.create_task(putQ())
taskput=asyncio.run_coroutine_threadsafe(putQ(qu),loop=new_loop)
taskget=asyncio.run_coroutine_threadsafe(getQ(qu),loop=new_loop)
while True:
time.sleep(1)