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


    1. 串行&并行&并发

    1.1 串行

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

    1.2 并行

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

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

    1.3 并发

    这个就是比较难理解的了

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

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

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

    这个流程大概就是

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

    2. 同步&异步

    2.1 同步

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

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

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

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

    2.2 异步

    还是小米商城抢购的例子

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

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

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

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

  • 相关阅读:
    创建spring自定义注解进行自动装配
    springmvc接收到的json数据乱码
    hibernate自动创建表失败
    Symfony2学习笔记之HTTP Cache
    EF4+Repository+UnitOfWork 代码摘录
    Symfony2学习笔记之表单
    Symfony2 学习笔记之内部构件
    Symfony2学习笔记之数据校验
    Symfony2 学习笔记之插件格式
    Symfony2学习笔记之数据库操作
  • 原文地址:https://www.cnblogs.com/hairless/p/13308778.html
Copyright © 2020-2023  润新知