前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2.协程的应用

2.协程的应用

原创
作者头像
jiagui
发布2024-07-08 15:06:43
1060
发布2024-07-08 15:06:43
举报
文章被收录于专栏:Python协程Python协程

使用协程也就意味着你需要一直写异步方法。在 Python 中我们使用 asyncio 模块来实现一个协程。如果我们把 Python 中普通函数称之为同步函数(方法),那么用协程定义的函数我们称之为异步函数(方法)。

  • 同步函数定义和调用:
代码语言:Python
复制
def function(x):
    return 2 * x

if __name__ == '__main__':
    function(2)
  • 异步函数定义和调用:
代码语言:Python
复制
import asyncio

async def function(x):
    return 2 * x

if __name__ == '__main__':
    t=function(2)
    asyncio.run(t)

注意:主函数里面调用时它是异步协程函数.,此时函数执行得到的是一个协程对象,因此不能在主函数中直接运行,会抛出Error,必须借助asyncio的run函数才能运行。

  • 多个异步函数调佣
代码语言:Python
复制
import asyncio

async def function1(x):
    return 2 * x

async def function2(x):
    return x*x

async def main():
    tasks=[
        asyncio.create_task(function1(2)),  # 版本3.8以后加上asyncio.create_task()
        asyncio.create_task(function2(3)),
    ]

if __name__ == '__main__':
     # 一次性启动多个任务(协程)
    asyncio.run(main())

关键字await 的作用

  1. 它要用于异步函数内部,await 用于需要等待的地方(比如网络 IO),出现 await 的时候,asyncio 去调度,在不同的 task 里面切换。
  2. await 的作用就是等待当前的协程运行结束之后再继续进行下面代码。等待一个协程的执行完毕,如果有返回结果,那么就会接收到协程的返回结果,通过使用 return 可以返回协程的一个结果,这个和同步函数的 return 使用方法一样。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关键字await 的作用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档