063 瞭解協程
阿新 • • 發佈:2022-04-20
1. 請描述什麼是協程,舉例說明
協程,又稱為微執行緒、纖程,英文名:Coroutine
通過async/await語法進行宣告,是編寫非同步應用的推薦方式
import asyncio async def main(): print('hello') await asyncio.sleep(1) print('world') asyncio.run(main())
2. 協程中有哪兩個執行任務的函式,如何使用
1. run
import asyncio import time async def say_after(delay, what): await asyncio.sleep(delay) print(what) async def myfun(): print(f'開始時間:{time.strftime("%X")}') await say_after(1, 'hello') await say_after(2, 'world') print(f"執行完成:{time.strftime('%X')}") asyncio.run(myfun())
開始時間:15:57:24
hello
world
執行完成:15:57:27
2. create_task
import asyncio import time async def say_after(delay, what): await asyncio.sleep(delay) print(what) async def myfun1(): task1 = asyncio.create_task( say_after(3, 'hello') ) task2 = asyncio.create_task( say_after(2, 'world') ) print(f'開始時間:{time.strftime("%X")}') await task1 await task2 print(f"執行完成:{time.strftime('%X')}") asyncio.run(myfun1())
開始時間:16:03:19
world
hello
執行完成:16:03:22
總結:
協程,又稱微執行緒。使用async修飾要執行的函式,在執行協程函式時,需要使用await。