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()
    

      

  • 相关阅读:
    安装redis
    memcached复制-repcached
    memcached一致性哈希及php客户端实现
    安装php
    安装mysql
    安装apache
    putty配色方案
    virtualbox下centos实现主宿互访
    安装memcached
    linux网络、性能相关命令
  • 原文地址:https://www.cnblogs.com/pythonClub/p/10115502.html
Copyright © 2011-2022 走看看