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. C#字符串拼接

    var name = "李哈哈"; var t = $"我是{name}";

  2. python分块读取大数据,避免内存不足

  3. CSRF原理及防御

    CSRF原理及防御 CSRF攻击原理 CSRF攻击利用网站对用户的信任,以用户的身份发送请求来执行攻击者所要的操作,比如:转账.发邮件.修改密码.添加用户等. CSRF和XSS一样危害都特别大,只不过 ...

  4. 数据可视化之powerBI技巧(十三)PowerBI作图技巧:动态坐标轴

    之前的文章中介绍了如何制作动态的分析指标,这篇进行文章再介绍一下如何制作动态的坐标轴. 假设要分析的数据为销售额,分别从产品和地区两个维度进行分析,要实现的效果是,如果选择的是产品,则坐标轴是各个产品 ...

  5. C# - 设计- Struct与Class的选择

    选择Struct的原则 该类型的实例较小且通常为短生存期,或者通常嵌入到其他对象中. 它以逻辑方式表示单个值,类似于基元类型( int .等 double ). 它的实例大小为16字节. 它是不可变的 ...

  6. JavaScript:父页面与Iframe页面方法互调

    父页面调用Iframe页面中的函数 以上是父页面中定义的iframe,注意添加name属性 在父页面中调用mapFrame的ShowMyLocation方法 Iframe页面调用父页面的方法 直接在I ...

  7. Go Pentester - HTTP Servers(3)

    Building Middleware with Negroni Reasons use middleware, including logging requests, authenticating ...

  8. Ethical Hacking - Web Penetration Testing(11)

    SQL INJECTION Preventing SQLi Filters can be bypassed. Use a blacklist of commands? Still can be byp ...

  9. Python Ethical Hacking - VULNERABILITY SCANNER(4)

    Extracting & Submitting Forms Automatically Target website:http://10.0.0.45/dvwa/vulnerabilities ...

  10. abp vnext 开发快速入门 1 认识框架

    最近在做一个项目,用的框架是Abp vnext ,不是Abp, 我自己也是刚开始用这个框架来做项目,难免要查资料,这个框架官方有中文文档,可以到官网www.abp.io 去查看,国内也有一些写了相关的 ...