1. 串行&并行&并发

1.1 串行

这个非常好理解,字面意思,像串成一个串一样,顺序执行

上一个没执行完的话,后面的就必须无条件等待

一般情况就是一个线程里:任务一个接一个执行,类似于打饭只有一个窗口,还必须严格排队

1.2 并行

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

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

1.3 并发

这个就是比较难理解的了

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

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

就比如:

线程1:烧水耗时10分钟

线程2:梳头3分钟

线程3:听歌30分钟

线程4:洗头(需要热水)10分钟

这个流程大概就是

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

2. 同步&异步

2.1 同步

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

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

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

更形象的例子是,小米手机刚发布,可你点击购买按钮,却在加载完一个动画后,显示售罄

这就是同步,只不过同步这个过程发生在后台,前台页面还没刷新出来

2.2 异步

还是小米商城抢购的例子

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

就好比:前台有个漂亮性感的小姐姐,你问她要一个最新款的小米手机,她只会告诉你:好的,我记录一下,请在旁边稍等。然后下一位!

她不会直接问有没有货,而是让你等着,没货的消息来了,她再告诉你

她只负责频繁地接待每一位顾客,然后让他在旁边稍等而已

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

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

串行&并行&并发,同步&异步的更多相关文章

  1. iOS:GCD理解1(串行-并行、同步-异步)

    1.获取并行.创建串行 队列 1-1).获取 并行(全局) 队列 ,DISPATCH_QUEUE_PRIORITY_DEFAULT 为默认优先级. dispatch_queue_t global_qu ...

  2. GC算法之串行并行并发

    串行收集器: 用单线程处理所有垃圾回收工作,因为无需多线程交互,所以效率比较高.但是,也无法使用多处理器的优势,所以此收集器适合单处理器机器.当然,此收集器也可以用在小数据量(100M左右)情况下的多 ...

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

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

  4. GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例

    转:http://www.tuicool.com/articles/NVVnMn (1)GCD实现的同步异步.串行并行. ——同步sync应用场景:用户登录,利用阻塞 ——串行异步应用场景:下载等耗时 ...

  5. 【iOS开发-91】GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例

    (1)GCD实现的同步异步.串行并行. --同步sync应用场景:用户登录,利用堵塞 --串行异步应用场景:下载等耗时间的任务 /** * 由于是异步.所以开通了子线程.可是由于是串行队列,所以仅仅须 ...

  6. GCD同步异步 串行并行大解析

    /** 核心概念 任务:block里需要执行的操作 队列:把任务添加进入队列中,按照先进先出的原则来执行任务  串行队列:一个一个的执行 并行队列:可以让多个任务并发(同时)执行(自动开启多个线程同时 ...

  7. IOS多线程知识总结/队列概念/GCD/串行/并行/同步/异步

    进程:正在进行中的程序被称为进程,负责程序运行的内存分配;每一个进程都有自己独立的虚拟内存空间: 线程:线程是进程中一个独立的执行路径(控制单元);一个进程中至少包含一条线程,即主线程. 队列:dis ...

  8. iOS多线程——同步异步串行并行

    串行并行异步同步的概念很容易让人混淆,关于这几个概念我在第一篇GCD中有解释,但是还不够清晰,所以这里重写一篇博客专门对这几个概念进行区分: 先说一下队列和任务: (1)队列分为串行和并行,任务的执行 ...

  9. Python并发编程系列之常用概念剖析:并行 串行 并发 同步 异步 阻塞 非阻塞 进程 线程 协程

    1 引言 并发.并行.串行.同步.异步.阻塞.非阻塞.进程.线程.协程是并发编程中的常见概念,相似却也有却不尽相同,令人头痛,这一篇博文中我们来区分一下这些概念. 2 并发与并行 在解释并发与并行之前 ...

随机推荐

  1. vue组件keepAlive的使用

    需要达到的效果: 列表页------->详情页/修改------>返回列表页(缓存列表页) 其它不缓存 //vuex/index.js new Vuex.store({ state: { ...

  2. 机器学习实战基础(二十五):sklearn中的降维算法PCA和SVD(六) 重要接口,参数和属性总结

    到现在,我们已经完成了对PCA的讲解.我们讲解了重要参数参数n_components,svd_solver,random_state,讲解了三个重要属性:components_, explained_ ...

  3. 使用Vue做出跑马灯效果

     <div id="pmd">         <h4> {{msg}}</h4>         <input type="b ...

  4. CSS背景处理

    CSS背景处理 背景样式 背景颜色 如果想让一个区域具有纯色的背景,可以使用background-color进行设置,背景颜色可以是rgb,rgba,#16网页色. <!DOCTYPE html ...

  5. 句柄Handle的释放(8)

    本篇首先介绍几个与句柄分配与释放密切相关的类,然后重点介绍句柄的释放. 1.HandleArea.Area与Chunk 句柄都是在HandleArea中分配并存储的,类的定义如下: // Thread ...

  6. 怎样才能做好软件测试——Python自动化测试工程师七年感悟

    即使不想在文章的开头过分的正经严肃,但这是一个十分正经技术类规划类的分享.不讲笑话也不讲故事,直接进入主题. 如何学好软件测试?反推一下作为一名优秀的软件测试工程师需要什么能力.   学习测试讲究实践 ...

  7. js 对象数组根据某个名称删除数组中的对象

    delArrayItem: function (array,item) { const index = array.findIndex(text => text.name === item.na ...

  8. layui :iframe 与 layer 的位置问题

    最近有个项目是用 Layui 搭的,但是在layer的使用上遇到了问题. 简单的说,在父页面声明layer,在子页面中的子页面用window.parent调用那个父页面的layer. 讲道理应该是和i ...

  9. 谷歌浏览器扩展 crx 下载

    下方服务可让国内成功下载谷歌浏览器.crx 扩展,如谷歌浏览器无法安装,可以使用终极解决方法,把.crx 解压缩,然后在扩展中心中开启 开发者模式然后选择加载已解压的扩展程序. 需要注意的是解压缩的文 ...

  10. 题解 洛谷 P3726 【[AH2017/HNOI2017]抛硬币】

    可以分别枚举两人正面朝上的次数来统计答案,所求即为 \[\sum_{i=0}^{a}\sum_{j=0}^{b} \binom{a}{i} \binom{b}{j} [i>j] \] 将\(i\ ...