〖课程介绍〗:
协程知识在很多课程中都有提到,但都是浅尝即止,均不深入。本课程作为市面上首门协程专题课程,将从基础讲起,与应用原理联动起来,深入协程原理更易于理解,结合丰富的课程案例,并使用Python语言进行落地实践。但一法通则万法通,不管你是Java、Go还是PHP开发,都可以通过本门课程掌握协程原理。对于初中级开发而言,是一门非常适合起手学习高性能开发的课程。
〖课程目录〗:
第1章 课程导学 试看
一个顺手的开发环境对编程的帮助是毋庸置疑的,本章节会带领大家搭建基于 VSCode+CentOS7 虚拟机的 Python 开发环境,助力课程代码开发。
共 3 节 (37分钟) 收起列表
1-1 开发环境准备-VSCode远程开发 (09:45)
1-2 开发环境准备-Centos7虚拟机 (11:11)
1-3 课程导学 (15:07)试看
第2章 协程必备基础知识 试看
磨刀不误砍柴工,打好基础才能更顺畅的掌握后面的高级知识。本章节正是对后续协程内容的一个铺垫,将会从计算机组成、操作系统、以及协程相关基础概念三个角度来讲解协程的必备基础知识,包括:计算机CPU、存储器、操作系统用户态内核态、并发与并行,计算密集型/IO密集型的概念。...
共 10 节 (121分钟) 收起列表
2-1 章节导学 (03:51)
2-2 计算机组成概述 (08:00)
2-3 计算机组成之CPU (13:56)
2-4 计算机组成之存储器 (10:51)
2-5 操作系统概述 (12:33)
2-6 操作系统的基本功能 (10:28)
2-7 操作系统的用户态和内核态 (14:33)
2-8 基础概念之并行与并发 (12:18)试看
2-9 基础概念之同步与异步 (11:02)
2-10 基础概念之计算密集型和IO密集型 (22:59)
第3章 深入探讨线程与进程
本章和上一章节同样属于是基础概念部分,从这章开始我们将对线程和进程做一个详细的讲解。进程的结构是怎样的、它存储在操作系统中的那个地方?进程的五大状态都是怎样的,它又是怎样调度的?而线程和进程又有那些差别等等这些问题我们都能从本章节的内容中找到答案,除了讲解线程和进程的内容之外,本章的最后一个小节我们...
共 8 节 (106分钟) 收起列表
3-1 章节导学 (02:53)
3-2 操作系统的进程详解 (17:56)
3-3 进程的五状态模型 (09:26)
3-4 进程的调度方式 (11:50)
3-5 操作系统的线程详解 (14:20)
3-6 线程的实现方式 (19:30)
3-7 进程与线程的上下文切换 (13:34)
3-8 探索协程的本质 (16:28)
第4章 多线程实践与性能分析
本章节内容通过一个下载器的案例来回顾前面所学习的基础知识,同时引出后续课程内容。同时也会演示这个下载器从单线程模型到多线程模型的优化过程,并用数据量化单线程和多线程模型的优缺点。
共 11 节 (118分钟) 收起列表
4-1 章节导学 (05:30)
4-2 Python 线程初体验 (15:44)
4-3 编程实践-实现单线程下载模块 (16:38)
4-4 编程实践-实现单线程哈希模块 (12:18)
4-5 编程实践-实现单线程存储模块 (08:47)
4-6 模块性能分析-并行化运行的可行性 (12:47)
4-7 线程池的原理与实践 (11:03)
4-8 线程池标准库ThreadPoolExecutor (06:39)
4-9 量化分析-线程池改造优化模块的性能 (17:12)
4-10 控制变量法分析 - Python 多线程的局限性 (07:21)
4-11 章节回顾 (03:48)
第5章 深入剖析 Python 解释器 GIL
GIL 一直是 Python 不能实现真正高并发的一道枷锁,那为什么还要一直保留 GIL 机制不去掉呢?这一章节我们会深入探讨 GIL 的来龙去脉,以及 GIL 为什么可以一直“苟活”下去的根本原因。
共 7 节 (75分钟) 收起列表
5-1 章节导学 (04:37)
5-2 探讨Python解释器 (12:43)
5-3 初探Python的GIL锁 (18:01)
5-4 GIL的作用-为什么不去掉GIL (09:46)
5-5 GIL与Python历代版本的关系 (10:36)
5-6 Python多线程的切换过程 (12:23)
5-7 【拓展】其他 解释型语言的多线程支持 (06:02)
第6章 多进程实践与性能分析
本章节内容依然属于基础知识部分,这一章我们会详细的了解进程相关知识,多进程的使用场景,优缺点以及和线程的区别等等。并且还会使用进程池优化第 4 章中的图片下载器。
共 8 节 (110分钟) 收起列表
6-1 章节导学 (03:14)
6-2 Python进程初体验 (25:05)
6-3 Python多进程高级编程 (14:27)
6-4 Python进程池标准库ProcessPoolExecutor (08:07)
6-5 编程实践-多进程优化各个模块 (11:22)
6-6 量化分析对比-单线程、多线程、多进程的性能差异 (10:48)
6-7 量化分析-多进程的局限性 (16:30)
6-8 【拓展】CPU核数、并发数与性能的关系 (20:13)
第7章 Python 生成器协程讲解
生成器作为 Python 协程的前身,本章将详细了解生成器的原理,以及学习生成器是如何一步一步演进成协程的。
共 7 节 (98分钟) 收起列表
7-1 章节导学 (03:27)
7-2 Python生成器概述 (18:06)
7-3 掌握Python关键字yield与yield from (16:17)
7-4 生成器的next函数和send函数 (26:22)
7-5 生成器的StopIteration异常 (08:56)
7-6 再次探讨生产者-消费者模型 (12:08)
7-7 生成器与协程的关系 (12:36)
第8章 实现生成器协程调度器 试看
实践原理的环节,本章将使用 TDD 的开发模式,从零到一带领大家实现一个生成器协程调度器,通过本章,大家将会深刻认识协程的概念、协程的实现原理。
共 7 节 (75分钟) 收起列表
8-1 本章导学&案例效果演示 (07:19)试看
8-2 实现生成器协程调度器YieldLoop (09:15)
8-3 实现生成器协程适配器CoroutineWrapper (14:23)
8-4 Python装饰器decorator的应用 (09:44)
8-5 实现协程装饰器@coroutine (05:43)
8-6 协程调度器测试-计算等差数列 (14:25)
8-7 协程调度器测试-生产者-消费者模型 (13:12)
第9章 Python 事件驱动编程
通过生成器协程,虽掌握了协程的概念,但对性能提升有限;本章将深入协程的事件循环的实现原理,理解和掌握 IO 多路复用、事件驱动等基础概念。
共 7 节 (87分钟) 收起列表
9-1 章节导学 (05:05)
9-2 Socket网络编程入门 (14:03)
9-3 Linux文件描述符fd (10:16)
9-4 TCP网络服务器的实现原理 (11:35)
9-5 Linux 网络IO模型详解 (16:44)
9-6 【拓展】网络服务器 Apache VS Nginx (07:22)
9-7 事件驱动编程原理与实现 (21:55)
第10章 原理实践-实现协程调度器
实践原理的环节,本章将实现一个完备的协程调度器,并通过协程调度器快速实现一个高性能的异步 TCPServer,破解 Python 协程高性能的核心密码。
共 7 节 (88分钟) 收起列表
10-1 章节导学 (03:21)
10-2 协程关键字async与await (06:39)
10-3 可等待对象与Future的实现 (13:43)
10-4 实现套接字协程适配器SocketWrapper (14:21)
10-5 定义协程调度器EventLoop (06:26)
10-6 epoll事件驱动编程在调度器的应用 (21:33)
10-7 协程TCP网络服务器的实现 (21:49)
第11章 原理实践 - Python 协程生态
拓展知识的章节,把视野扩大到 tornado、gevent、asyncio、aiohttp、aiofile 等 Python 协程生态,从此 Python 高性能协程开发,一马平川、了如指掌。
共 9 节 (72分钟) 收起列表
11-1 章节导学 (03:31)
11-2 协程在Web后台的应用 (08:17)
11-3 协程在爬虫服务的应用 (07:56)
11-4 协程的一般应用场景 (04:50)
11-5 Tornado框架中的协程 (10:01)
11-6 标准协程库asyncio (05:54)
11-7 协程库aiohttp与aiodns (07:38)
11-8 文件IO协程库aiofiles (07:08)
11-9 协程优化多线程多进程服务.mp4 (15:56)
第12章 课程总结
千里送君,终须一别,到这一章我们的课程就要结束了,这一章会通过思维导图回顾课程主要内容,同学们可以根据理解的薄弱点,针对性的回顾和学习,并对同学们的未来发展之路做一个展望~
共 2 节 (14分钟) 收起列表
12-1 课程总结-章节回顾.mp4 (08:28)
12-2 总结与展望.mp4 (04:40)
〖视频截图〗: