雷子聊并发编程(001):基础知识之串行&并行&并发

前言

编写正确的程序很难,而编写正确的并发程序则难上加难。与串行程序相比,在并发程序中存在更多容易出错的地方。那么,为什么还要编写并发程序?原因很简单,能充分发挥与利用多处理器系统的强大计算能力。

在开始进入并发编程的编码学习之前,掌握必要的基础知识有助于并发编程底层源码部分的理解。因此,必须拎出来与大家好好聊上一聊。

什么是串行?

串行是指两个或者多个事件在顺序发生。串行单处理器与多处理器系统中都存在。

1.1 示意图

A线程将两个任务顺序执行。

1.2 举例

Anna给A、B两个学生辅导。Anna给A辅导后,安排A做作业。等A完成作业后,开始给B辅导。等B辅导后,安排B做作业,等B完成作业后,完成整个任务。

什么是并发?

并发是指两个或多个事件在同一时间间隔发生,也可以理解成交替做不同事情或不同的代码块交替执行。并发单处理器与多处理器系统中都存在。

2.1 示意图

单核CPU,4个任务。虽然开启4个线程执行,但是处理核只能同一时间执行单个线程。
上图的并发仅仅意味着线程随着时间推移交错执行(上图),充分利CPU空闲时间。

2.2 举例

Anna给A、B、C三个学生辅导。Anna给A辅导后,安排A写作业。A写作业的时候,Anna给B辅导后,安排B写作业。B写作业的时候,Anna给C辅导。趁空闲时间交替工作。

什么是并行?

并行是指两个或者多个事件在同一时刻发生,也可以理解成同时做不同事情的能力或不同的代码块同时执行。并行在多处理器系统中存在。

3.1 示意图

3.2 举例

Anna给A、B、C三个学生辅导。Anna请了两个老师,三个老师同时给A、B、C三个学生辅导。

最后

综上,得知并发且并行的执行效率很高。实现方式是开启多线程,那多线程又是什么东西?与多线程紧密关联的还有哪些?

扫一扫二维码关注,也许我们可以更深入...

posted @ 2019-10-14 23:52  我是雷子  阅读(163)  评论(0编辑  收藏  举报