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
原文地址:https://www.cnblogs.com/saintdingspage/p/9101461.html