zoukankan      html  css  js  c++  java
  • 添加任务

    # https://segmentfault.com/q/1010000010559838
    import asyncio
    import threading
    import random
    
    
    async def fn(name,qu):
        while True:
            print(name,"ready to work")
            r=asyncio.run_coroutine_threadsafe(qu.get(),qu._loop)
            rs=r.result()
            print(name,"get work,working",rs)
            if rs=="over":
                asyncio.run_coroutine_threadsafe(qu.put("over"),qu._loop)
                print(name,"over")
    
            await asyncio.sleep(random.randint(1,3))
            print(name,"done,sleep")
            await asyncio.sleep(random.randint(1,3))
            print(name,"wake up")
            if rs=="over":
                break
    
    def t(name,qu):
        loop=asyncio.new_event_loop()
        asyncio.set_event_loop(loop)
        loop.run_until_complete(fn(name,qu))
    loop=asyncio.new_event_loop()
    asyncio.set_event_loop(loop)
    qu=asyncio.Queue()
    tl=[threading.Thread(target=t,args=(i,qu)) for i in range(5)]
    for i in tl:
        i.setDaemon(True)
        i.start()
    
    
    async def pt(qu):
        for i in range(20):
            await asyncio.sleep(0.8)
            await qu.put(i)
            print("work need to do",qu)
        await qu.put("over")
        await asyncio.sleep(5)
    
    loop.run_until_complete(pt(qu))
    
    loop.close()
    

      

  • 相关阅读:
    css(上)
    前端基础
    并发编程,python的进程,与线程
    网络编程 套接字socket TCP UDP
    python 类的内置函数2
    python3大特征之多态
    python 类(object)的内置函数
    类 与 继承
    类 与 面向对象
    OOP >>> 封装
  • 原文地址:https://www.cnblogs.com/pythonClub/p/10115502.html
Copyright © 2011-2022 走看看