python - asyncio异步编程 - 事件循环


前言

理解成为一个死循环


# 伪代码理解事件循环
任务列表 = [任务1, 任务2, 任务3]

while True:
    可执行的任务列表, 已完成的任务列表 = 去任务列表中检查所有的任务, 将可执行和已完成的任务返回
    for 就绪任务 in 可执行的任务列表:
        执行已就绪的任务

    for 已完成的任务 in 已完成的任务列表:
        在任务列表中移除 已完成的任务

    如果 任务列表 中的任务都已完成, 则终止循环

二、事件循环在python中的实现

# 去生成或获取一个事件循环
loop = asyncio.get_event_loop()
# 将任务放到任务列表
loop.run_until_complete(任务)

二、快速上手

  • 协程函数, 定义函数时候 async def 函数名.
  • 协程对象, 执行 协程函数() 得到的协程对象.
# 协程函数
async def fun1():
    pass
# 协程对象
result = fun1()

执行协程函数创建协程对象, 函数内部代码不会执行
如果想要运行协程函数内部代码, 必须要将协程对象交给事件循环来处理

import asyncio

# 协程函数
async def fun1():
    print("....")
# 协程对象
result = fun1()

loop = asyncio.get_event_loop()
loop.run_until_complete(result)
  • 在python3.7以后
import asyncio

# 协程函数
async def fun1():
    print("....")
# 协程对象
result = fun1()

# loop = asyncio.get_event_loop()
# loop.run_until_complete(result)
asyncio.run(result)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值