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

1.同步与异步

同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)

所谓同步,就是在发出一个*调用*时,在没有得到结果之前,该*调用*就不返回。但是一旦调用返回,就得到返回值了。

换句话说,就是由*调用者*主动等待这个*调用*的结果。

而异步则是相反,*调用*在发出之后,这个调用就直接返回了,所以没有返回结果。换句话说,当一个异步过程调用发出后,调用者不会立刻得到结果。而是在*调用*发出后,*被调用者*通过状态、通知来通知调用者,或通过回调函数处理这个调用。

典型的异步编程模型比如Node.js

举个通俗的例子:

你打电话问书店老板有没有《分布式系统》这本书,如果是同步通信机制,书店老板会说,你稍等,”我查一下",然后开始查啊查,等查好了(可能是5秒,也可能是一天)告诉你结果(返回结果)。

而异步通信机制,书店老板直接告诉你我查一下啊,查好了打电话给你,然后直接挂电话了(不返回结果)。然后查好了,他会主动打电话给你。在这里老板通过“回电”这种方式来回调。

2. 阻塞与非阻塞

阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态.

阻塞调用是指调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。

非阻塞调用指在不能立刻得到结果之前

linux线程同步与异步的区别,怎样理解阻塞非阻塞与同步异步的区别?相关推荐

  1. 怎样理解阻塞非阻塞与同步异步的区别

    怎样理解阻塞非阻塞与同步异步的区别? 发现很多人对这两个概念往往混为一谈 6 条评论 分享 按投票排序 按时间排序 47 个回答 605赞同 反对,不会显示你的姓名 卢毅 ,Lyft full-sta ...

  2. 怎样理解阻塞非阻塞与同步异步的区别?

    发现很多人对这两个概念往往混为一谈(包括本人,不是很理解). 阻塞"与"非阻塞"与"同步"与"异步"不能简单的从字面理解,提供一个 ...

  3. 阻塞非阻塞与同步异步的区别?

    之前一直对阻塞非阻塞与同步异步这两对概念理解不深,总是把它们搞混.看了网上一些相关的解释之后,发现大家站在不同的角度得出了不同的理解,这个问题没有确切的答案,只能根据场景不同做出解释. 进程间的通信 ...

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

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

  5. 阻塞/非阻塞与同步/异步的区别

    阻塞,非阻塞 同步,异步 阻塞与非阻塞最大的区别是调用方一直等待还是先去处理别的事情. 同步与异步最大的区别就是被调用方返回结果之前的这段时间内,调用方是否一直等待. 那么阻塞和同步,非阻塞和异步是一 ...

  6. Linux驱动学习9(同步/异步与阻塞/非阻塞的区别 )

    很多人对阻塞,非阻塞,同步,异步,并发,竞态的概念不是很清晰,今天我把我理解的用一个模型来说明一下这些概念. 首先建立一个模型: 我们去银行办理业务,屌丝的做法是: 1.银行未准备好,则一直排队,直到 ...

  7. Python|线程和进程|阻塞|非阻塞|同步|异步|生成器和协程|资源竞争|进程间通信|aiohttp库|daemon属性值详解|语言基础50课:学习(11)

    文章目录 系列目录 原项目地址 第34课:Python中的并发编程-1 线程和进程 多线程编程 使用 Thread 类创建线程对象 继承 Thread 类自定义线程 使用线程池 守护线程 资源竞争 G ...

  8. 同步异步与阻塞非阻塞的区别 (不定时更新)

    同步异步与阻塞非阻塞的概念对于很多初学者来说是一个模糊的概念,其实我们的生活中存在着很多同步和异步的例子. 同步和异步关注的是消息通信机制 在计算机领域,同步就是指一个进程在执行某个请求的时候,若该请 ...

  9. 异步就是异步,根本就没有 异步非阻塞IO这个说法。阻塞 非阻塞,同步I/O 异步I/O 的区别

    先给大家安利一下这个 https://www.ibm.com/developerworks/cn/linux/l-async/ 里面关于 异步非阻塞IO 是错的. 异步就是异步,别扯 异步阻塞 异步非 ...

  10. 同步/异步 阻塞/非阻塞区别

    我喜欢用自己的语言通过联系现实生活中的一些现象解释一些概念,当我能做到这一点时,说明我已经理解了这个概念.今天要解释的概念是:同步/异步与阻塞/非阻塞的区别. 这两组概念常常让人迷惑,因为它们都是涉及 ...

最新文章

  1. 爬虫之数据提取响应内容的分类
  2. matplotlib 设置坐标轴单位
  3. 2018年全球AI突破性技术TOP10
  4. 分析了 600 多种烘焙配方,机器学习开发出新品
  5. J2ME下的游戏精灵的碰撞检测(转)
  6. Spring应用架构
  7. 2797:最短前缀 Trie
  8. python工作台_FreeCAD二次开发-创建Python工作台,添加菜单栏和工具条,FreeCAD命令
  9. 认知无线电与软件定义无线电的区别
  10. 测评绿联蓝牙音频接收器
  11. 浅谈怎样入侵服务器,仅供学习用
  12. 使用DDE传输数据至SQL Server
  13. 关于加强销售费用管理的探讨
  14. 4-ipv6基础知识之-邻居发现协议NDP
  15. 几款好用的UML建模工具
  16. Android PC同步软件 类似 apple 的 itunes
  17. Web 图集应用,属于非游戏类的图集/雪碧图对象/JS雪碧图/前端图集/JS图集
  18. 锐捷 Smartweb管理系统 密码信息泄露漏洞
  19. [图文]历届奥斯卡影后(上)
  20. 卖货的 Keep,是垂直社区的未来缩影

热门文章

  1. 生活随记 - 着急赶时间的时候记得不要拼车
  2. go依赖注入--google开源库wire
  3. 三年级下册计算机知识点,苏教版三年级信息技术下册知识点.doc
  4. 详解ChaosBlade
  5. 揭秘智能音箱里那些神秘的声学技术
  6. 开发工具与关键技术:DW软件 JS设置遮罩层
  7. 计算机毕业设计Python+Django基于python的古诗词在线学习网站(源码+系统+mysql数据库+Lw文档)
  8. 基于PHP+MySQL绿色环保宣传网站的设计与实现
  9. 案例:购买飞机票的价格
  10. 无线射频技术是什么技术 RFID技术与无线技术的区别