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)
    

      

     

  • 相关阅读:
    使用QQ邮箱发送邮件,QQ邮箱的smtp设置
    Linux常用命令
    Pycharm批量查找替换功能
    HTML/CSS学习笔记
    什么样的人适合做自动化测试
    如何测试一个WEB的输入框?
    我收集的学习网站
    SQL查询练习(一)
    linux消息队列应用编程
    linux共享内存简单介绍以及编码演示
  • 原文地址:https://www.cnblogs.com/pythonClub/p/10107537.html
Copyright © 2011-2022 走看看