📚 课程介绍
本课程深入解析了协程、进程和线程的原理,从基础知识到高级实践,适合对并发编程有较高兴趣的学习者。
📋 学习前提
1. Python基础(了解Python编程语言的基本语法和编程范式) 2. 操作系统基础(了解操作系统的基础知识,如进程、线程、并发等概念) 3. 数据结构与算法基础(了解常见的数据结构和算法,有助于理解并发编程中的复杂问题)
📖 课程目录
第1章 课程导学
1-1 课程导学
1-2 开发环境准备-Centos7虚拟机
1-3 开发环境准备-VSCode远程开发
第2章 协程必备基础知识
2-1 章节导学
2-2 计算机组成概述
2-3 计算机组成之CPU
2-4 计算机组成之存储器
2-5 操作系统概述
2-6 操作系统的基本功能
2-7 操作系统的用户态和内核态
2-8 基础概念之并行与并发
2-9 基础概念之同步与异步
2-10 基础概念之计算密集型和IO密集型
第3章 深入探讨线程与进程
3-1 章节导学
3-2 操作系统的进程详解
3-3 进程的五状态模型
3-4 进程的调度方式
3-5 操作系统的线程详解
3-6 线程的实现方式
3-7 进程与线程的上下文切换
3-8 探索协程的本质
第4章 多线程实践与性能分析
4-1 章节导学
4-2 Python 线程初体验
4-3 编程实践-实现单线程下载模块
4-4 编程实践-实现单线程哈希模块
4-5 编程实践-实现单线程存储模块
4-6 模块性能分析-并行化运行的可行性
4-7 线程池的原理与实践
4-8 线程池标准库ThreadPoolExecutor
4-9 量化分析-线程池改造优化模块的性能
4-10 控制变量法分析 – Python 多线程的局限性
4-11 章节回顾
第5章 深入剖析 Python 解释器 GIL
5-1 章节导学
5-2 探讨Python解释器
5-3 初探Python的GIL锁
5-4 GIL的作用-为什么不去掉GIL
5-5 GIL与Python历代版本的关系
5-6 Python多线程的切换过程
5-7 【拓展】其他 解释型语言的多线程支持
第6章 多进程实践与性能分析
6-1 章节导学
6-2 Python进程初体验
6-3 Python多进程高级编程
6-4 Python进程池标准库ProcessPoolExecutor
6-5 编程实践-多进程优化各个模块
6-6 量化分析对比-单线程、多线程、多进程的性能差异
6-7 量化分析-多进程的局限性
6-8 【拓展】CPU核数、并发数与性能的关系
第7章 Python 生成器协程讲解
7-1 章节导学
7-2 Python生成器概述
7-3 掌握Python关键字yield与yield from
7-4 生成器的next函数和send函数
7-5 生成器的StopIteration异常
7-6 再次探讨生产者-消费者模型
7-7 生成器与协程的关系
第8章 实现生成器协程调度器
8-1 章节导学
8-2 实现生成器协程调度器YieldLoop
8-3 实现生成器协程适配器CoroutineWrapper
8-4 Python装饰器decorator的应用
8-5 实现协程装饰器@coroutine
8-6 协程调度器测试-计算等差数列
8-7 协程调度器测试-生产者-消费者模型
第9章 Python 事件驱动编程
9-1 章节导学
9-2 Socket网络编程入门
9-3 Linux文件描述符fd
9-4 TCP网络服务器的实现原理
9-5 Linux网络IO模型详解
9-6 【拓展】网络服务器 Apache VS Nginx
9-7 事件驱动编程原理与实现
第10章 原理实践-实现协程调度器
10-1 章节导学
10-2 协程关键字async与await
10-3 可等待对象与Future的实现
10-4 实现套接字协程适配器SocketWrapper
10-5 定义协程调度器EventLoop
10-6 epoll事件驱动编程在调度器的应用
10-7 协程TCP网络服务器的实现
第11章 原理实践 – Python 协程生态
11-1 章节导学
11-2 协程在Web后台的应用
11-3 协程在爬虫服务的应用
11-4 协程的一般应用场景
11-5 Tornado框架中的协程
11-6 标准协程库asyncio
11-7 协程库aiohttp与aiodns
11-8 文件IO协程库aiofiles
11-9 协程优化多线程多进程服务
第12章 课程总结
12-1 课程总结-章节回顾
12-2 总结与展望
