~玉米糊~
慢慢来,也会很快。 非宁静无以志学,学什么都一样,慢慢打基础,找规律、认真、坚持,其余的交给时间。

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。

 

posted on 2022-04-20 16:07  yuminhu  阅读(25)  评论(0编辑  收藏  举报