Python并发编程

第一章:掌握并发与并行

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

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

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

首页 > Python并发编程 > 第一章:掌握并发与并行 > 1.2节:掌握并行编程的基础概念

1.2节:掌握并行编程的基础概念

薯条老师 2020-05-29 08:03:15 232912 0

编辑 收藏

教程引言:

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

1.2.1 理解并行

在上一节内容中讲到了并发的概念,并发的字面意思接近于“交替发生”。计算机中的并发,是指计算机程序在一段时间内交替地执行。在本节内容中,着重介绍并行以及并行编程的概念。并行的字面意思,可理解为同时执行,计算机中的并行是指多个执行实例同时执行。
假设在计算机中存在5个执行实例:A,B,C,D,E。那么,所谓的并行执行,是指这5个执行实例在同一时间同时地执行:

image.png



在1.1节中举了一个例子,某Python程序员一边写代码,一边与人暧昧,这说的是并发,因为该程序员在同一时间只能做一件事。与人暧昧一段时间以后,该程序员幡然醒悟:妹子不可得,还是写代码好玩。

于是乎,该Python程序员利用当下火热的NLP以及深度学习,写了一个聊天机器人。有了机器人这个分身以后,该Python程序员可以“并行”地做两件事:写代码,继续与人暧昧。

那么,在计算机中可不可以并行地执行多个程序?

答案是肯定的,利用处理器的多核技术,可以实现真正意义上的并行执行。

英特尔曾研发出一种超线程技术,利用超线程,单核CPU可以实现并行执行的效果,大幅提升单核CPU的执行性能。 但超线程并不是物理上的并行执行,因为本质上还是由同一个CPU核心来执行多个程序。

比如在一台6核CPU的计算机中,让核心1执行实例A,让核心2执行实例B ,让核心3执行实例C,也可以让核心1执行实例C,核心2执行实例A,核心3执行实例B。至于如何进行CPU核心的分配和调度,是由操作系统来负责的。

1.2.2 并行编程

欲实现并行执行,计算机中的CPU至少有2个以上的核心,或者该计算机具备多个处理器。有了这样的硬件条件,我们才可以进行多任务的并行处理。通常所说的并行编程,是指以编码的方式,利用多核或多处理器来编写对多任务进行并行处理的程序。
我们在开发应用程序的时候,可以将任务按某一维度分解成多个子任务,比如按读写的维度分解成读任务和写任务,然后利用系统地并行处理机制来提升程序的执行性能。

1.2.3 并发与并行

并发是指多个执行实例在一段时间内交替地执行,如果把交替的时间间隔,无限逼近到一个极限值,那么此时的并发就变成了并行。从这一个角度来进行分析,可将并行视为并发的一种特殊情况,将并行视为并发的子集。

image.png



广义的并发编程包含了并行的概念,在以后的内容中,讲到并发编程时,说的都是广义的并发编程。

1.2.4 知识要点

(1) 并行的字面意思,可理解为同时执行,计算机中的并行是指多个计算机执行实例同时执行。
(2) 利用处理器的多核技术,可以实现真正意义上的并行执行
(3) 并行是并发的一种特殊情况,广义的并发编程包含了并行的概念。

1.2.5 课后习题

(1) 举出在生活中与并行有关的三个例子
(2) 浅析并发与并行的区别和联系
(3) 如何利用并发编程来提升程序的执行性能?

关注微信公众号:薯条编程,公众号后台回复"Python资料",免费领取Python电子书,以及学习免费的Python视频课程。小班授课,学期半年,大神手把手教学,月薪8000以上,火热报名中,点击了解线下就业培训。


欢迎 发表评论:

  • 请填写验证码