- 3.2节:线程的通信与同步
- 已经是最后一篇了
教程引言:
该系列教程会系统地讲解并发与并行的基础概念,以及如何使用Python进行并发编程。掌握并发编程,是成为一名优秀程序员所必须具备的基本功。
4.1.1 什么是协程
所谓的协程,对应的是程序中的一部分处理逻辑,比如程序中的某一个函数。与函数的区别在于,协程仅表示一个处理过程,通常没有返回值。在第二章和第三章的内容中,分别讲解了进程和线程,进程和线程的调度和切换由操作系统来进行控制,而协程的切换则由程序员进行控制。
协程的调度和切换由程序员进行控制,这是协程与进程,线程的最大区别。
同学们在理解协程时,只需将它理解为一个函数即可。一个协程对应一个特定的处理任务,在协程的运行过程中,我们可以根据实际的程序逻辑来对协程进行切换和调度,比如当前协程处于等待状态,那么就切换到其它的协程,继续处理其它任务。
4.1.2 为什么需要协程?
在理解为什么需要协程之前,同学们可以先复习第三章中的内容。为什么引入协程与为什么引入线程的原因是相似的:由于进程的创建,切换等需要较大的系统开销,所以在80年代引入了线程的概念。
故而在理解为什么需要协程时,我们亦可从系统资源占用的角度来进行思考和理解。
协程又称为微线程,英文名Coroutine, 从其字面意思,我们就可以分析出,协程比线程更轻量。这意味着,在进行协程的调度和切换时,其占用更少的系统资源,占用更少的系统资源即表示能在进程内部创建更多的协程,利用协程,可以轻松编写高并发程序。
4.1.3 Python中的协程
Python中的协程,主要是通过生成器来实现的,会在第七章《Python协程编程》中进行详细讲解。
4.1.4 知识要点
(1) 所谓的协程,对应的是程序中的一部分处理逻辑,比如程序中的某一个函数(2) 协程的调度和切换由程序员进行控制,这是协程与进程,线程的最大区别(3) 协程比线程更轻量, 在进行协程的调度和切换时,其占用更少的系统资源。利用协程,可以轻松编写高并发程序。
4.1.5 课后习题
(1) 什么是协程?为什么需要引入协程?(2) 进程,线程,协程,它们三者的联系和区别是什么?
关注微信公众号:Python在线课堂,学习Python视频课程以及其它的编程课程:tornado,django,web开发,网络爬虫,大数据分析,机器学习。公众号后台回复“学习资料”领取Python,web开发,网络爬虫,大数据分析,机器学习等学习资料。
TAGS:协程Python中的协程
- 3.2节:线程的通信与同步
- 已经是最后一篇了