也说同步异步阻塞非阻塞

原创 2016年05月31日 12:48:39

这里所说的概念都是指 API 和 网络 I/O 方面的,如果是其他科目同一词汇可能表达的是完全不同的概念,比如布式系统里的同步表示是各节点按照时钟节拍同步,而异步是收到消息后立即执行

同步就是调用方一直等着被调方完成
异步就是调用方不必等着被调方完成,完成后被调方通知调用方
阻塞就是调用方一直等着消息
非阻塞就是调用方不必一直等待消息,可以先去干别的

举个例子,就用在饭店点菜做例子
同步阻塞就是点完菜在前台一直等着上菜
同步非阻塞就是点完菜在前台处玩手机
异步阻塞就是点完菜回座位一直等着上菜
异步非阻塞就是点完菜回座位上玩手机

同步和异步关心的是调用方和被调方之间消息通信的机制
同步:发出的调用在没有得到结果之前不返回
异步:发出调用即刻返回,等待回调函数返回结果
异步编程:Node.js
阻塞非阻塞关心的是调用方在等待结果时的状态
阻塞是在调用返回结果之前一直等待
非阻塞是在调用返回结果之前不必等待,但是可以经常检查是否完成

是否阻塞和同步异步没有任何关系
你是等着上菜还是玩手机和你在前台等还是在座位等没有任何关系

在类 UNIX 中存在五种 I/O 模型

  • 阻塞式I/O
  • 非阻塞式I/O
  • I/O复用(select,poll,epoll…)
  • 信号驱动式I/O(SIGIO)
  • 异步I/O(POSIX的aio_系列函数)

想要详细了解请参阅《 UNIX 网络编程:卷一》
对 UNIX 来讲:阻塞式 I/O (默认),非阻塞式 I/O (nonblock),I/O 复用(select/poll/epoll)都属于同步 I/O,因为它们在数据由内核空间复制回进程缓冲区时都是阻塞的(不能干别的事)。只有异步 I/O 模型(AIO)是符合异步 I/O 操作的含义的,即在1数据准备完成、2由内核空间拷贝回缓冲区后 通知进程,在等待通知的这段时间里可以干别的事

image_1ajbgp3dn1c3q17u11of81t0g1grk9.png-142.2kB
陈硕认为在处理 IO 的时候,阻塞和非阻塞都是同步 I/O,而只有使用了特殊的 API 才是异步 IO

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

用 maptail 构建简易攻击地图

maptail 描述的资料没有一个讲在 Debian 下安装的,我看的都是使用 Cent OS 进行搭建,其实是基于 Nodejs,然后调用 WEB 服务器访问日志实时打印出访问信息,那么我们可以在 ...
  • tan6600
  • tan6600
  • 2016年05月31日 12:46
  • 810

Python Flask-表单提交方式

这篇文章讲两种表单提交方式,先说一下目录树,下图左侧templates文件夹放置html文件, static文件夹放置css,js文件.1.请求上下文首先在templates文件夹新建一个login...
  • Co_zy
  • Co_zy
  • 2017年08月04日 09:39
  • 517

同步异步阻塞非阻塞

  • 2015年04月29日 10:12
  • 380KB
  • 下载

同步异步阻塞非阻塞I/O思维导图

  • 2012年11月05日 21:34
  • 355KB
  • 下载

举例说同步异步阻塞非阻塞机制

劫匪冲进某花园小别墅,端着AK47,向某衰男甩过去一个袋子:说,快,把现金拿出来给我放进去,这个时候劫匪一直跟着衰男去装钱,看钱装满了他就拿走,此时劫匪是阻塞 的,因为劫匪不能干其他的,得看着这个衰男...

thrift java多线程非阻塞同步/异步调用实例

本文由larrylgq编写,转载请注明出处:http://blog.csdn.net/larrylgq/article/details/7497342 作者:吕桂强 邮箱:larry.lv...
  • larrylgq
  • larrylgq
  • 2012年04月25日 12:21
  • 16146

同步、异步、阻塞、非阻塞

同步:所谓的同步就是,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。通俗一点讲就是每次有仅只有一件可以干的事情,只有在这个件事情处理完了,才可以接其他的事情做。 异步:顾名思义,...

nginx 同步与异步 阻塞与非阻塞

0.序      首先通过阅读参考文章的内容,了解大概,我写出下文。并且我参考上述文章的写作方式,以生活中的事件来理解技术上的问题。      初学同步与异步、阻塞与非阻塞,难免有些理解错误,还希...

java IO 概念误区---------同步/异步与阻塞/非阻塞的区别

我喜欢用自己的语言通过联系现实生活中的一些现象解释一些概念,当我能做到这一点时,说明我已经理解了这个概念.今天要解释的概念是:同步/异步与阻塞/非阻塞的区别. 这两组概念常常让人迷惑,因为它们都...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:也说同步异步阻塞非阻塞
举报原因:
原因补充:

(最多只允许输入30个字)