python 的串行和并行

 

import asyncio
import time

#串行
#asyncio.run()
async def say_after(delay, what): 
    await asyncio.sleep(delay) 
    print(what)
async def main():
    print(f"started at {time.strftime('%X')}")
    await say_after(2, 'hello') 
    await say_after(1, 'world')
    print(f"finished at {time.strftime('%X')}") 
asyncio.run(main())


#并行
#asyncio.create_task()
async def say_after(delay, what): 
    await asyncio.sleep(delay) 
    print(what)
async def main():
    task1 = asyncio.create_task(
        say_after(2, 'hello')) 
    task2 = asyncio.create_task(
        say_after(1, 'world'))
    print(f"started at {time.strftime('%X')}")
    # Wait until both tasks are completed (should take # around 2 seconds.)
    await task1
    await task2
    print(f"finished at {time.strftime('%X')}")
asyncio.run(main())

 输出

started at 19:20:48
hello
world
finished at 19:20:51
started at 19:20:51
world
hello
finished at 19:20:53

 

 

 

 

posted @ 2020-01-07 19:22  anobscureretreat  阅读(733)  评论(0编辑  收藏  举报