Python并发编程

第一章:掌握并发与并行

第二章:让程序动起来-进程

第三章:程序的执行者-线程

第四章:比线程更轻量-协程

首页 > Python并发编程 > 第四章:比线程更轻量-协程 > 4.1节:比线程更轻量

4.1节:比线程更轻量

薯条老师 2020-06-02 16:06:18 232246 0

编辑 收藏

教程引言:

该系列教程会系统地讲解并发与并行的基础概念,以及如何使用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开发,网络爬虫,大数据分析,机器学习等学习资料。


欢迎 发表评论:

  • 请填写验证码