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
  • 相关阅读:
    android WebView 加载html5
    android 摄像头的使用
    android 传感器类 sensor
    关于java的一些东西
    android 网络连接管理机制
    利用Layout实现Button的不规则布局
    Android 推送通知指南(转载)
    android开发小问题随记(附1)
    ubuntu下搭建android开发环境(转载)
    北斗小辣椒双核升级攻略之一
  • 原文地址:https://www.cnblogs.com/saintdingspage/p/9101461.html
Copyright © 2011-2022 走看看