• 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
  • 相关阅读:
    greenplum导数据
    greenplum 集群部署
    jmx远程访问权限设置
    分布式实时日志处理平台ELK
    hbase0.95.2部署
    hadoop2.2.0部署
    highcharts
    FreeMarker
    使用solr的完整流程
    solr搜索流程
  • 原文地址:https://www.cnblogs.com/saintdingspage/p/9101461.html
Copyright © 2020-2023  润新知