同步、异步,是一种协作机制
  • 同步:发出一次请求后必须等到该请求有返回结果,才能继续下一步工作;请求者需主动询问是否有返回结果;
  • 异步:发出一次请求后无需等到该请求有返回结果,即可进行下一步工作;请求有结果后,会以某种方式通知请求者;
阻塞、非阻塞,是等待某种资源(返回结果)时线程的状态
  • 阻塞:发出一次请求后,在未得到返回结果前,线程挂起,这期间线程无法做其他事情;
  • 非阻塞:发出一次请求后,在未得到返回结果前,线程不会挂起,这期间线程可以做其他事情;

举例子:
老王、小李:请求处理者;
机器人A、B:请求发出者;(这里,你可以把A、B的执行看作一个整体的工作流
通用场景:
A、B收到主人的命令,需要去老王的书店买书,以及去小李的店铺买水果;
A、B到了老王的书店,让老王帮忙找“XXX”这本书,随后老王进了藏书库去找书;
同步阻塞:
在老王找书期间,A、B停止运行(相当于阻塞,线程挂起),直到老王找到书后,A、B才恢复运行,然后执行下一项任务:去小李的店铺买水果(同步,买书->有结果->下一项任务)
同步非阻塞:
在老王找书期间,A、B没有停止运行(非阻塞,线程没有挂起),它们逛了逛书店,扫描了下这些书的内容,然后时不时问问老王书找到了没有(主动轮询请求结果);等到老王找到书后,A、B才能拿着书离开去执行下一项任务(同步,买书->有结果->下一项任务)。(需要注意的是:虽然A、B在老王找书的期间可以运行,但是它们必须得拿到书后,才能去买水果,不能跳过获取书的这个环节)
异步阻塞:
在老王找书期间,A停止运行(阻塞,线程挂起),但是B可以不用等待,直接去执行下一项任务:去小李的店铺买水果(异步,买书->暂无结果->下一项任务);等老王找到书后,可以让A拿着书去找B,或者打电话让B过来书店拿书(即:以某种方式将结果传递给请求发出者)
异步非阻塞:
在老王找书期间,A、B没有停止运行(非阻塞,线程没有挂起),A、B继续去执行下一项任务:去小李的店铺买水果(异步,买书->暂无结果->下一项任务);等老王找到书后,可以打电话给A、B让他们来取书,或者通过快递把书寄给A、B(即:以某种方式将结果传递给请求发出者)
转载请说明出处:https://www.cnblogs.com/southday/p/10600934.html
have a good time! :D

转载于:https://www.cnblogs.com/southday/p/10600934.html

简单理解:同步、异步、阻塞、非阻塞相关推荐

  1. 理解同步异步、阻塞与非阻塞

    "阻塞"与"非阻塞"与"同步"与"异步"不能简单的从字面理解,提供一个从分布式系统角度的回答. 1.同步与异步 同步和异 ...

  2. 深入理解并发/并行,阻塞/非阻塞,同步/异步

    北京 | 深度学习与人工智能 12月23-24日 再设经典课程 重温深度学习阅读全文> 正文共3359个字,11张图,预计阅读时间:9分钟. 1.阻塞,非阻塞 首先,阻塞这个词来自操作系统的线程 ...

  3. 深入理解非阻塞同步IO和非阻塞异步IO

    这两篇文章分析了Linux下的5种IO模型 http://blog.csdn.net/historyasamirror/article/details/5778378 http://blog.csdn ...

  4. 聊聊对不同I/O模型的理解 (阻塞/非阻塞IO,同步/异步IO)

    一.关于I/O模型的问题 最近通过对ucore操作系统的学习,让我打开了操作系统内核这一黑盒子,与之前所学知识结合起来,解答了长久以来困扰我的关于I/O的一些问题. 1. 为什么redis能以单工作线 ...

  5. 异步/同步、阻塞/非阻塞的理解

    异步/同步.阻塞/非阻塞的理解 [同步和异步] 通俗的讲: 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式.  异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个 ...

  6. 一篇文章理解 同步异步、阻塞非阻塞

    前述 同步异步,阻塞非阻塞是一些非常常见的概念,但是对于开发者来说往往是用到了很难说清楚. 笔者专门整理了下这方面的概念,作此文以记之. 这部分内容可能存在一些争议,如有不同意见欢迎评论交流. 概念 ...

  7. 正确理解同步/异步和阻塞/非阻塞的区别:

    之前一直把异步和非阻塞混为一谈,在 了解BIO和NIO的区别时才发现了两者的差异,看了网上很多文章觉得说的总是差点意思,下面是个人理解: 1.同步 非同步 阻塞 非阻塞 概念 怎样理解阻塞非阻塞与同步 ...

  8. 彻底理解同步异步阻塞与非阻塞

    彻底理解同步异步阻塞与非阻塞 前言 用户空间 内核空间 系统调用 用户态 内核态 系统IO 阻塞非阻塞 同步异步 前言 最近有同事问我同步异步与阻塞非阻塞有什么区别,后来发现很多同事不能区分这些概念. ...

  9. 15分钟读懂进程线程、同步异步、阻塞非阻塞、并发并行,太实用了!

    作者:Martin cnblogs.com/mhq-martin/p/9035640.html 基本概念 1 进程和线程 进程(Process): 是Windows系统中的一个基本概念,它包含着一个运 ...

  10. 【面试】迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章(快快珍藏)...

    网上有很多讲同步/异步/阻塞/非阻塞/BIO/NIO/AIO的文章,但是都没有达到我的心里预期,于是自己写一篇出来. 常规的误区 假设有一个展示用户详情的需求,分两步,先调用一个HTTP接口拿到详情数 ...

最新文章

  1. AAA及Radius
  2. linux php 安装mysql数据库_linux php安装mysql数据库有哪些方法
  3. 【星球知识卡片】模型剪枝有哪些关键技术,如何对其进行长期深入学习
  4. Python学习笔记:错误和异常
  5. 这个代码应该怎么写???
  6. httpclient 手写
  7. [论文阅读] Pyramid Feature Attention Network for Saliency Detection
  8. 21.TCP/IP 详解卷1 --- TCP 的超时与重传
  9. JAVA在线购物B2C商城源码
  10. Maya API编程快速入门
  11. plc和c语言和cnc,cnc数控编程和plc编程哪个难学
  12. iCloud账号服务器出问题了,icloud连接到服务器时出现问题(苹果id不能退出登录怎么办)...
  13. 软工网络15团队作业4——Alpha阶段敏捷冲刺之Scrum 冲刺博客(Day2)
  14. [038]量化交易]显示所有股票名称及股票代码
  15. 闪电Android视频转换器,闪电Android视频转换器
  16. word删除分页符的两种方法
  17. 3dmax用云渲染好还是本地渲染好?云渲染哪个好用?
  18. 【华为OD机试真题 JAVA】热点网站统计
  19. Linux之CentOS7安装(VMware虚拟机安装及系统安装图文教程)
  20. Cannot use JSX unless the ‘--jsx‘ flag is provided.

热门文章

  1. scvmm2008R2创建委派管理员角色
  2. 服务器如何向c winform推送信息,C局域网聊天工具消息推送实现思路与源码.doc
  3. window.event.returnValue=false
  4. 虚幻4 远处的贴图模糊处理
  5. 文本编辑器Nano实用快捷键
  6. Portlet开发指南第二章
  7. codesmith用access的mdb文件作数据源的模板引用
  8. RIA风格的GIS软件还有多远?
  9. BIM技术在地铁中应用
  10. Fiddler 抓包高级进阶篇-天罗地网抓包大法