avatar
文章
533
标签
122
分类
88
首页
时间轴
标签
分类
List
  • 音乐
  • 照片
  • 电影
友链
关于
晚上十一点睡觉のBlog15. 协程 返回首页
搜索
首页
时间轴
标签
分类
List
  • 音乐
  • 照片
  • 电影
友链
关于

15. 协程

发表于2022-12-06|更新于2026-10-04|PythonPython核心知识
|总字数:9|阅读时长:1分钟|浏览量:|评论数:
文章作者: 晚上十一点睡觉
文章链接: https://11pmsleep.gungnir.top/posts/21255/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 晚上十一点睡觉のBlog!
Python私密笔记教程编程
cover of previous post
上一篇
JavaScript基础知识
JavaScript 入门笔记:js 的作用与使用方式、数据类型与函数,重点整理 DOM 获取标签元素(getElementById/querySelector 系列)、属性与样式操作及 innerHTML/innerText 区别。
cover of next post
下一篇
16. MySQL数据库
MySQL 数据库基础:Docker 安装与用户权限管理(外连开关、常见权限分类),数据类型与约束,库表的增删改命令,insert/update/delete 数据操作及去重插入的两种写法。
相关推荐
cover
2022-11-03
9. 三器一闭
Python 迭代器、生成器、闭包与装饰器的汇总页:四篇专题笔记的入口索引,附 4G 内存读取 5G 数据的生成器分块与文件切割两种解法。
cover
2022-11-30
11. 异常与文件操作
Python 异常处理与文件操作:try/except/else/finally 完整用法、raise 与 assert、自定义异常,open 函数的文件模式与编码参数,read/readline/readlines 读写及 with 自动关闭。
cover
2022-12-02
13. 多线程
Python 多线程教程:进程与线程概念、GIL 全局解释器锁,threading 创建线程、join 与 setDaemon、共享全局变量的资源竞争与互斥锁、递归锁与死锁,及线程池用法。
cover
2022-12-01
12. 网络编程
Python 网络编程入门:端口与 socket 套接字概念,UDP 发送接收与端口绑定实现聊天器,TCP 客户端与服务器构建流程及多线程并发服务器,附文件下载器实战案例。
cover
2022-11-03
8. 进阶面向对象
Python 面向对象高级篇:多继承下 super 与类名调用的差异及 MRO 顺序,内建属性(__new__/__getattribute__/__call__ 等),__slots__ 限制属性,property 三种定义方式。
cover
2022-12-03
14. 多进程
Python 多进程教程:Process 创建子进程与 fork/spawn 启动方式,进程间不共享变量的原因与 Queue 通信,进程池 Pool 及 concurrent.futures 异步进程池,附爬取案例。

评论
avatar
晚上十一点睡觉
个人学习日志,学习领域:网络安全和Python爬虫。近一年blog更新至语雀,等有时间再推送至此,后续blog会以全新版本进行发布
文章
533
标签
122
分类
88
Follow Me
公告
stay passionate and never say die
目录
  1. 1. 协程简介
  2. 2. 协程历代实现方式
    1. 2.1. greenlet 实现协程
    2. 2.2. yield关键字实现协程
    3. 2.3. asyncio装饰器写法实现协程
    4. 2.4. async & await 关键字
  3. 3. 协程意义及应用场景
    1. 3.1. 案例:使用requests模块完成图片下载
  4. 4. 用协程来异步编程
    1. 4.1. asyncio的运行器——run()
      1. 4.1.1. 特点
      2. 4.1.2. 使用场景
      3. 4.1.3. 示例
      4. 4.1.4. 注意事项
    2. 4.2. 协程函数和对象
      1. 4.2.1. 定义协程函数、创建协程对象语法
      2. 4.2.2. python<3.7运行协程对象
      3. 4.2.3. python>=3.7运行协程对象
      4. 4.2.4. 运行协程对象的几种方法总结(最新):
    3. 4.3. 可等待对象
    4. 4.4. 事件循环
      1. 4.4.1. 事件循环简单总结
      2. 4.4.2. python<3.7需要使用比较底层的函数获取事件循环
      3. 4.4.3. python>=3.7会自动获取事件循环
      4. 4.4.4. 事件循环模拟代码
    5. 4.5. 单次运行任务——await 关键字
      1. 4.5.1. 知识点
      2. 4.5.2. await等待协程——同步处理
      3. 4.5.3. await等待Task——异步处理
      4. 4.5.4. 示例1:await的基本使用
      5. 4.5.5. 示例2:await关键字的探究
    6. 4.6. 并发运行任务——asyncio.gather方法
      1. 4.6.1. 语法:
      2. 4.6.2. 以下是 asyncio.gather() 函数的基本使用方法:
      3. 4.6.3. 示例
    7. 4.7. asyncio.wait函数:并发执行多个任务,并分类拿到完成和未完成
      1. 4.7.1. 下面是两个困惑
    8. 4.8. Task 对象
      1. 4.8.1. 创建一个Task对象
      2. 4.8.2. 实例1:Task对象并发执行
      3. 4.8.3. 示例2:将Task对象放入到任务列表中
      4. 4.8.4. 先创建事件循环才能创建task
      5. 4.8.5. ensure_future()创建task
      6. 4.8.6. ensure_future()和create_task()的解释:
      7. 4.8.7. 获取执行结果result()
    9. 4.9. Future对象和Future相关的函数
      1. 4.9.1. Future 相关函数
      2. 4.9.2. Future对象
        1. 4.9.2.1. asyncio.Future 对象的创建
        2. 4.9.2.2. 示例1:关于ensure_future()创建的对象和Future()创建的对象有何区别
        3. 4.9.2.3. 示例2:Future对象如果没有结果,那么await会一直等待
        4. 4.9.2.4. 示例3:手动给Future对象设置一个结果,给await拿到一个返回值解开堵塞
      3. 4.9.3. Future对象的常见方法:
  5. 5. 协程其他知识补充
    1. 5.1. 异步加锁
    2. 5.2. 异步迭代器
    3. 5.3. 异步上下文管理器
    4. 5.4. uvloop
    5. 5.5. concurrent.futures.Future 对象
  6. 6. 异步编程的一些用法示例
    1. 6.1. 示例1:使用线程和进程池完成并发编程
    2. 6.2. 示例2:交叉编程
    3. 6.3. 案例3:asyncio + 不支持异步的模块(requests)
  7. 7. 实战案例
    1. 7.1. 异步操作 Redis
      1. 7.1.1. 案例1:并发redis
      2. 7.1.2. 案例2:并发入库
    2. 7.2. 异步 MySQL
      1. 7.2.1. 案例1:
      2. 7.2.2. 案例2:
    3. 7.3. FastAPI 框架
      1. 7.3.1. 示例:
    4. 7.4. 爬虫
  8. 8. refer
最新文章
集团流量链路
集团流量链路2026-10-04
6-小红书环境一致性风控与逐项排查实战
6-小红书环境一致性风控与逐项排查实战2026-10-04
4-小红书签名体系与风控实战
4-小红书签名体系与风控实战2026-10-04
Linux-Shell脚本学习
Linux-Shell脚本学习2026-10-04
Linux-Kali配置与使用
Linux-Kali配置与使用2026-10-04
© 2022 - 2026 By 晚上十一点睡觉
Welcome to 11pmsleep's blog ~~~ Blog仅供个人记录笔记学习所用,若有侵权,联系我删除~若有错误,也望诸君不吝指正
搜索
数据加载中