阻塞、非阻塞与同步、异步IO的区别
来源:互联网 发布:叶部长 工资 知乎 编辑:程序博客网 时间:2024/06/01 10:52
转自知乎的某条评论……@愚抄
今天看文章发现评论中有人把IO的几个概念讲的通俗易懂,拿来和大家分享一下:
关键词
- 阻塞同步IO
- 阻塞异步IO
- 非阻塞同步IO
- 非阻塞异步IO
段子如下:
老张爱喝茶,废话不说,煮开水。
出场人物:老张,水壶两把(普通水壶,简称水壶;会响的水壶,简称响水壶)。
1. 老张把水壶放到火上,立等水开。(同步阻塞)老张觉得自己有点傻
2. 老张把水壶放到火上,去客厅看电视,时不时去厨房看看水开没有。(同步非阻塞)老张还是觉得自己有点傻,于是变高端了,买了把会响笛的那种水壶。水开之后,能大声发出嘀~~~~的噪音。
3. 老张把响水壶放到火上,立等水开。(异步阻塞)老张觉得这样傻等意义不大
4. 老张把响水壶放到火上,去客厅看电视,水壶响之前不再去看它了,响了再去拿壶。(异步非阻塞)老张觉得自己聪明了。
总结
所谓同步异步,只是对于水壶而言。普通水壶,同步;响水壶,异步。虽然都能干活,但响水壶可以在自己完工之后,提示老张水开了。这是普通水壶所不能及的。同步只能让调用者去轮询自己(情况2中),造成老张效率的低下。所谓阻塞非阻塞,仅仅对于老张而言。立等的老张,阻塞;看电视的老张,非阻塞。情况1和情况3中老张就是阻塞的,媳妇喊他都不知道。虽然3中响水壶是异步的,可对于立等的老张没有太大的意义。所以一般异步是配合非阻塞使用的,这样才能发挥异步的效用。
【总监】十二春秋之,3483099@qq.com;
【Master】zelo,616701261@qq.com;【运营】运维艄公,897221533@qq.com;
【产品设计】流浪猫,364994559@qq.com;【体验设计】兜兜,2435632247@qq.com;
【iOS】淘码小工,492395860@qq.com;iMcG33K,imcg33k@gmail.com;
【Android】人猿居士,1059604515@qq.com;思路的顿悟,1217022114@qq.com;
【Java】首席工程师MR_W,feixue300@qq.com;【测试】土镜问道,847071279@qq.com;
【数据】fox009521,42151960@qq.com;【安全】保密,你懂的。
- IO中同步、异步与阻塞、非阻塞的区别
- IO中同步、异步与阻塞、非阻塞的区别
- IO中同步、异步与阻塞、非阻塞的区别
- IO中同步、异步与阻塞、非阻塞的区别
- IO中同步、异步与阻塞、非阻塞的区别
- IO中同步、异步与阻塞、非阻塞的区别
- IO中同步、异步与阻塞、非阻塞的区别
- IO中同步、异步与阻塞、非阻塞的区别
- IO中同步、异步与阻塞、非阻塞的区别
- IO中同步、异步与阻塞、非阻塞的区别
- IO中同步、异步与阻塞、非阻塞的区别
- IO中同步、异步与阻塞、非阻塞的区别
- IO中同步、异步与阻塞、非阻塞的区别
- IO中同步、异步与阻塞、非阻塞的区别
- IO中同步、异步与阻塞、非阻塞的区别
- IO中同步、异步与阻塞、非阻塞的区别
- IO中同步、异步与阻塞、非阻塞的区别
- IO中同步、异步与阻塞、非阻塞的区别
- 数据包解析——物理层Frame
- windows核心编程之关键代码
- 自定义View
- HTML标签分类:按照标签的显示模式分类
- 可能是最通俗易懂的方式讲解ARM中断原理以及中断嵌套
- 阻塞、非阻塞与同步、异步IO的区别
- 【AC自动机】统计单词出现个数
- fragment使用
- 【JavaWeb】SpringMVC重定向页面取值
- Struts2中action接受参数的方法,属性:DomainModel、ModelDriver和ActionSupport
- Spring入门(概述以及框架)
- sizeof与strlen的区别
- python之父子进程间通信
- 深度学习用于图像超分辨率重建的经典paper汇总(1)