zoukankan      html  css  js  c++  java
  • asyncio queue

    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)
    

      

     

  • 相关阅读:
    PHP垃圾回收深入理解
    PHP的运行机制与原理(底层)
    SSO单点登录-简单实现
    HBuilder 打包流程
    PHP实现多继承的效果(tarits)
    mysql explain用法和结果的含义
    mysql分区功能详细介绍,以及实例
    MySQL分表、分区

    椒图
  • 原文地址:https://www.cnblogs.com/pythonClub/p/10107537.html
Copyright © 2011-2022 走看看