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
  • 相关阅读:
    react-native 安卓支持 gif动态图
    react-navigation,StackNavigator,TabNavigator 导航使用
    poj3694 网络(板子题)
    POJ1275 Cashier Employment 差分约束(优化 二分)
    Codeforces Round #667 (Div. 3)
    POJ1201 Intervals 差分约束(贪心也可)
    YY的GCD
    Codeforces Round #666 (Div. 2) A~E
    Rendezvous
    创世纪
  • 原文地址:https://www.cnblogs.com/saintdingspage/p/9101461.html
Copyright © 2011-2022 走看看