Python并发编程

第一章:掌握并发与并行

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

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

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

首页 > Python并发编程 > 第三章:程序的执行者-线程 > 3.1节:程序的执行者:线程

3.1节:程序的执行者:线程

薯条老师 2020-05-30 09:42:38 234618 0

编辑 收藏

教程引言:

该系列教程会系统地讲解并发与并行的基础概念,以及如何使用Python进行并发编程。掌握并发编程,是成为一名优秀程序员所必须具备的基本功。

3.1.1 为什么需要引入线程?

在第二章中讲到了进程的概念,进程是资源分配的基本单位,每创建一个进程,系统都需要分配CPU,内存,磁盘等资源。系统中不止存在一个进程,从当前进程切换执行其它进程时,系统需要将当前进程的上下文信息保存下来,以便下一次继续执行。

所谓的进程上下文,是指该进程的所有执行状态信息。当系统切换执行另一个进程时,需要保存当前进程的所有状态,以便下次执行该进程时,能够从切换时的状态继续执行下去。

此外,进程在销毁时,系统需要回收进程占用的所有资源。在80年代之前,进程是资源分配的基本单位,也是系统进行调度和执行的基本单位。由于进程的创建、切换、销毁存在较大的开销,因此,在80年代引入了一种能独立运行的基本单位-线程。 线程远比进程轻量,只占用较少的系统资源,自线程被引入以后,线程成为系统进行调度和执行的最小单位。

3.1.2 进程是线程的容器

进程是操作系统进行资源分配的基本单位,进程运行于系统中,以这样的角度来看,可将操作系统理解为一个包含各种进程的容器。进程运行在操作系统这个容器里面,占用着操作系统的各种资源:CPU,内存,磁盘等。
而线程是运行在进程内部的执行实体,一个线程对应一个单一顺序的控制流,从这一个角度来看,进程则是线程的容器。在支持多线程的操作系统中,一个进程内部可以并发执行多个线程。

image.png



线程运行在进程这个容器里面,共享着进程内部的资源,这表现为:所有线程共享进程的地址空间,打开的文件等进程中的多个线程之间,可以并发地执行,线程的执行也是由操作系统进行调度的,系统会根据实际情况,将线程指定给特定的CPU核心,以此进行并发计算。

3.1.3 知识要点

(1) 进程是资源分配的基本单位,每创建一个进程,系统都需要分配CPU,内存,磁盘等资源
(2) 在80年代引入了一种能独立运行的基本单位-线程。 线程远比进程轻量,只占用较少的系统资源,自线程被引入以后,线程成为系统进行调度和执行的最小单位。
(3) 操作系统是进程的容器,进程是线程的容器
(4) 所有线程共享进程的地址空间

3.1.4 课后习题

(1)为什么需要在系统中引入线程?
(2)课后思考题:线程共享进程的地址空间,那么线程之间如何进行通信?

关注微信公众号:Python在线课堂,学习Python视频课程以及其它的编程课程:tornado,django,web开发,网络爬虫,大数据分析,机器学习。公众号后台回复“学习资料”领取Python,web开发,网络爬虫,大数据分析,机器学习等学习资料。



欢迎 发表评论:

  • 请填写验证码