1. 程式人生 > 其它 >063 瞭解協程

063 瞭解協程

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。