2020.7.7 asyncio协程Task对象

发布于 2020-07-07  28 次阅读


1.复习内容

2.灵感代办

  • Redis 命令复习
  • git命令复习
  • Django中使用Redis数据库的配置
  • js对象方法中,调用自身属性方法
    • js对象.方法名
  • cookie中 不要存明文
  • django 如何解析的 reserve()
  • redis不用捕获异常
  • redis的事务
  • 短信验证码,防爆破(思路)

3.学习内容

  • pickle模块和base64模块

    • pickle模块性能比较好(json,itsdangerous)
  • html中的文本类型

    • text/plant
    • text/html
    • text/xml
    • text/json
  • 购物车流程分析

  • python asyncio协程

    • 协程对象

      • 协程函数就是async修饰的函数
      • 协程对象就是协程函数()加上括号
    • 协程函数执行

      • 方法1
        • loop = asyncio.get_event_loop() # for循环
        • loop.run_until_complete(result) # 添加任务
      • 方法2
        • asyncio.run(result) python3.7之后可以使用
    • Task对象

      • 在时间循环中,可以添加多个任务,并发执行任务
      • 1.创建Task对象
        • asyncio.create_task(协程对象) py3.7可以使用
        • loop.create_task(协程对象)
        • ensure_future(协程对象)
      • asyncis.wait(可迭代对象,里面是协程对象)
        • 等待协程对象执行
      • import asyncio
        
        async def func():
            pass
        
        async def main():
            print("main开始")
            task_list = [
                asyncio.create_task(func()),
                asyncio.create_task(func())
            ]
            done, pending = await asyncio.wait(task_list, timeout=None)
            print(done)
            print(pending)
            print("main结束")
        
        asyncio.run(main())
        
        
        # loop = asyncio.get_event_loop() # for循环
        
        
        # loop.run_until_complete(result) # 添加任务
        
        
        
        # asyncio.run(result) python3.7之后可以使用
        
        
        # 另一种方法
        
        task_list = [func(),func()]
        asyncio.run(asyncio.wait(task_list))

4.扩展延伸知识

5.知识内容个人梳理

6.今天都复习了之前的什么内容


Ares个人进阶之路