如何理解同步阻塞、同步非阻塞、异步阻塞、异步非阻塞
网上闲逛技术贴,看见一个关于理解同步阻塞、同步非阻塞、异步阻塞、异步非阻塞比较风趣的故事,简单明了,很容易理解,因此记录一下,希望更多人能看见。
故事原文:
老张爱喝茶,废话不说,煮开水。出场人物:老张,水壶两把(普通水壶,简称水壶;会响的水壶,简称响水壶)。
1 老张把水壶放到火上,立等水开。(同步阻塞)
老张觉得自己有点傻
2 老张把水壶放到火上,去客厅看电视,时不时去厨房看看水开没有。(同步非阻塞)
老张还是觉得自己有点傻,于是变高端了,买了把会响笛的那种水壶。水开之后,能大声发出嘀~~~~的噪音。
3 老张把响水壶放到火上,立等水开。(异步阻塞)
老张觉得这样傻等意义不大
4 老张把响水壶放到火上,去客厅看电视,水壶响之前不再去看它了,响了再去拿壶。(异步非阻塞)
老张觉得自己聪明了。所谓同步异步,只是对于水壶而言。
普通水壶,同步;响水壶,异步。
虽然都能干活,但响水壶可以在自己完工之后,提示老张水开了。
这是普通水壶所不能及的。同步只能让调用者去轮询自己(情况2中),造成老张效率的低下。
所谓阻塞非阻塞,仅仅对于老张而言。
立等的老张,阻塞;看电视的老张,非阻塞。
情况1和情况3中老张就是阻塞的,媳妇喊他都不知道。
虽然3中响水壶是异步的,可对于立等的老张没有太大的意义。
所以一般异步是配合非阻塞使用的,这样才能发挥异步的效用。——来源网络,作者不明。
如何理解同步阻塞、同步非阻塞、异步阻塞、异步非阻塞相关推荐
- 深入理解非阻塞同步IO和非阻塞异步IO
这两篇文章分析了Linux下的5种IO模型 http://blog.csdn.net/historyasamirror/article/details/5778378 http://blog.csdn ...
- 简单理解什么是同步阻塞/同步非阻塞,异步阻塞/异步非阻塞
简单理解什么是同步阻塞/同步非阻塞,异步阻塞/异步非阻塞 声明:本篇思想非原创,系从老师处听来.因为CSDN发转载需要有原文链接,本篇没有原文链接,所以填的原创. 举个栗子 1.你在家做饭,用普通的汤 ...
- 确定不来了解一下什么是 BIO NIO AIO 阻塞 非阻塞 同步 异步?
本文内容涉及同步与异步, 阻塞与非阻塞, BIO.NIO.AIO等概念, 这块内容本身比较复杂, 很难用三言两语说明白. 而书上的定义更不容易理解是什么意思. 下面跟着我一起解开它们神秘的面纱. BI ...
- recvfrom函数 非阻塞_那些年让你迷惑的阻塞、非阻塞、异步、同步
那些年让你迷惑的阻塞.非阻塞.异步.同步 在IT圈混饭吃,不管你用什么编程语言.从事前端还是后端,阻塞.非阻塞.异步.同步这些概念,都需要清晰地掌握,否则,怎么与面试官谈笑风生(chui niu pi ...
- Python|线程和进程|阻塞|非阻塞|同步|异步|生成器和协程|资源竞争|进程间通信|aiohttp库|daemon属性值详解|语言基础50课:学习(11)
文章目录 系列目录 原项目地址 第34课:Python中的并发编程-1 线程和进程 多线程编程 使用 Thread 类创建线程对象 继承 Thread 类自定义线程 使用线程池 守护线程 资源竞争 G ...
- 同步I/O、异步I/O、阻塞I/0、非阻塞I/O、五种I/O模型、高性能网络模型
10.I/O相关概念 https://www.cnblogs.com/xiaoxi/p/6525396.html 10.1.同步和异步 同步就是:如果有多个任务或者事件要发生,这些任务或者事件必须 ...
- 异步就是异步,根本就没有 异步非阻塞IO这个说法。阻塞 非阻塞,同步I/O 异步I/O 的区别
先给大家安利一下这个 https://www.ibm.com/developerworks/cn/linux/l-async/ 里面关于 异步非阻塞IO 是错的. 异步就是异步,别扯 异步阻塞 异步非 ...
- 同步阻塞 同步非阻塞 异步阻塞 异步非阻塞
今天老师讲了同步阻塞 同步非阻塞 异步阻塞 异步非阻塞.讲完感觉老师自己说的都是前后矛盾的.去网上找了几篇大佬的博客,看完后才有点点感悟.特地小结记下来,若有错误之处,欢迎大家斧正. 首先先弄清楚同步 ...
- java如何阻塞和同步_同步与异步,阻塞与非阻塞
今天早上关注了这个问题,刚抽出时间大概整理下,以下仅是个人理解: 一定要多看几遍代码并结合文字理解下 引0.从I/O说起 这些概念之所以容易令人迷惑,在于很多人对I/O就没有清晰准确的理解,后面的理解 ...
- 阻塞/非阻塞/同步/异步方法和多线程的关系?没有任何关系,俩不挨着
1.阻塞非阻塞异步同步是针对方法说的,是评判一个方法运行状态的.和多线程完全两个级别. 2.阻塞非阻塞异步同步是针对方法说的,是评判一个方法运行状态的.和多线程完全两个级别. 3.阻塞非阻塞异步同步是 ...
最新文章
- Go语言开发常见陷阱,你遇到过几个?
- 两种超级智能,哪一个对人类未来影响更为深远?
- C#读写xml文件最简单方法(操作配置文件)
- 使用page-slot显示SAP Spartacus section里包含的Component和layout设计
- 『数据库』这篇数据库的文章真没人看--数据库完整性
- 鸿蒙系统暗黑2,暗黑破坏神2为什么被称为神作!看看装备强化系统就知道有多完美...
- httpservletrequest 设置请求头_请求和常用对象
- 字节跳动被爆商业化部门大量裁员
- Ubuntu查看文件夹下文件的个数
- Golang的并发模式
- 破解“还原卡”技术方法
- 密码编码学初探——数论和有限域
- 000-EMC 深入解读-目录
- 2022年最新前端零基础学习路径
- 细谈数据库表锁和行锁
- OSPF主流LSA及域内域间Vlink虚链路配置
- 7-2 愿天下有情人都是失散多年的兄妹 (25 分)
- 【大数据开发必看】可视化BI神器---FineBI
- 使用隐马尔科夫模型实现分词
- 一次Wi-Fi入侵实录