zoukankan      html  css  js  c++  java
  • asyncio模块实现线程的嵌套和穿插

    import asyncio
    
    import time
    
    now = lambda :time.time()
    
    async def cpc_1(x):
    
        print('正在烙比萨饼,预计{}分钟'.format(x))
    
        await asyncio.sleep(x)
    
        return '{}分钟后,北武堂的小伙伴们吃起了比萨饼'.format(x)
    
    async def cpc_2(x):
    
        print('正在用冰块镇零度可乐,预计{}分钟'.format(x))
    
        await asyncio.sleep(x)
    
        return '{}分钟后,北武堂的小伙伴们喝起了冰镇饮料'.format(x)
    
    async def cpc_3(x):
    
        print('夫妻肺片和其他凉菜马上送到,预计{}分钟'.format(x))
    
        await asyncio.sleep(x)
    
        return'{}分钟后,北武堂的小伙伴们吃起了凉菜'.format(x)
    
    async def main():
    
        cp1 = cpc_1(30)
    
        cp2 = cpc_2(15)
    
        cp3 = cpc_3(5)
    
        tasks = [asyncio.ensure_future(cp1),asyncio.ensure_future(cp2),asyncio.ensure_future(cp3)]
    
        done,pending = await asyncio.wait(tasks)
    
        for i in done:
    
            print(i.result())
    
    start = now()
    
    loop = asyncio.get_event_loop()
    
    loop.run_until_complete(main())
    
    print("总耗时......{}".format(now()-start))
    执行结果:
    
    正在烙比萨饼,预计30分钟
    正在用冰块镇零度可乐,预计15分钟
    夫妻肺片和其他凉菜马上送到,预计5分钟
    30分钟后,北武堂的小伙伴们吃起了比萨饼
    5分钟后,北武堂的小伙伴们吃起了凉菜
    15分钟后,北武堂的小伙伴们喝起了冰镇饮料
    总耗时......30.00571608543396
  • 相关阅读:
    盒子阴影——Box-shadow
    Flex布局
    常用正则表达式
    选择器
    上传头像功能
    利用百度地图API获取用户浏览器所在省市区
    Android Studio编译运行卡慢的解决方案
    Laravel5.5 解决时区设置差8个小时解决办法
    Git:远程代码与本地冲突常见解决方法
    vue-element-admin解决跨域问题
  • 原文地址:https://www.cnblogs.com/saintdingspage/p/9101461.html
Copyright © 2011-2022 走看看