串行&并行&并发,同步&异步

1. 串行&并行&并发

1.1 串行

这个非常好理解,字面意思,像串成一个串一样,顺序执行
上一个没执行完的话,后面的就必须无条件等待
一般情况就是一个线程里:任务一个接一个执行,类似于打饭只有一个窗口,还必须严格排队

1.2 并行

并行就是各干各的,彼此谁都不搭理谁

类似于打饭有好几个窗口,每个窗口都排着一条队

1.3 并发

这个就是比较难理解的了

我感觉这个词就是大家不知道取什么名字了然后就随便编了一个(小声BB)

这个就是各个线程在并行的同时,又各自盯着对方,能帮就帮,都是兄弟

就比如:
线程1:烧水耗时10分钟
线程2:梳头3分钟
线程3:听歌30分钟
线程4:洗头(需要热水)10分钟

这个流程大概就是

这个图应该已经很明白了吧

2. 同步&异步

2.1 同步

同步就是并发场景下,大家做出的成果讨论完了给一个最终结果

而且,同步里面有一个很重要的概念就是锁

比如:食堂里面只有一块肉了,那么就只能是一个窗口卖这个肉,一旦一个窗口卖出去了这块肉,别的窗口就不能卖了

更形象的例子是,小米手机刚发布,可你点击购买按钮,却在加载完一个动画后,显示售罄
这就是同步,只不过同步这个过程发生在后台,前台页面还没刷新出来

2.2 异步

还是小米商城抢购的例子

前台抢购的任务和后台记录订单的任务在不同线程上面

就好比:前台有个漂亮性感的小姐姐,你问她要一个最新款的小米手机,她只会告诉你:好的,我记录一下,请在旁边稍等。然后下一位!
她不会直接问有没有货,而是让你等着,没货的消息来了,她再告诉你
她只负责频繁地接待每一位顾客,然后让他在旁边稍等而已

下载软件在后台下载,而你在前面看小视频,这也是异步

同理,你点击一个播放按钮,出现加载动画,也是异步。

原文地址:https://www.cnblogs.com/hairless/p/13308778.html