白话解说:阻塞和非阻塞,同步和异步
阻塞和非阻塞,同步和异步是node.js里经常遇到的词汇,举例说明:
我要看足球比赛,但是妈妈叫我烧水,电视机在客厅,烧水要在厨房。家里有2个水壶,一个是普通的水壶,另一个是水开了会叫的那种水壶。我可以:
- 用普通的水壶烧,人在边上看着,水开了再去看球。(同步,阻塞)这个是常规做法,但是我看球不爽了。
- 用普通水壶烧,人去看球,隔几分钟去厨房看看。(同步,非阻塞)这个又大问题,万一在我离开的几分钟水开了,我就麻烦了。
- 用会叫的水壶,人在边上看着。(异步,阻塞)这个没有问题,但是我太傻了。
- 用会叫的水壶,人去看球,听见水壶叫了再去看。(异步,非阻塞)这个应该是最好的。
等着看球的我:阻塞
看着电视的我:非阻塞
普通水壶:同步
会叫的水壶:异步
所以,异步往往配合非阻塞,才能发挥出威力。
阻塞和非阻塞1.阻塞:就像单线程cpu一样,一个任务由多个小任务组成,但是只能一个任务接一个任务流程的往想下走,谁在任务排序的前面就谁先执行,执行完了进行下一个,如果遇到错误,下面的小任务就不要做了,一直卡住。2.非阻塞:就像多线程cpu一样,一个任务由多个小任务组成,可以分开线程来做,每个线程做分配到的任务,完成了对应的任务就行,某个线程的任务没做完那就做报对应的错,其他的不受影响。
同步:要做的事列了一个清单,按照清单上的顺序 一个一个执行。
异步:就是可以同时干好几件事。
阻塞:就是按照清单上的顺序一件一件的往下走,任意一件事没有做完,下面的事都干不了。
非阻塞:就是有事没有作完,后面的事不会等这件事干完了再作,而是直接开始作下一件事,等这件事作完了,后面的事也作完了,这样就大大提高了效率。
白话解说:阻塞和非阻塞,同步和异步相关推荐
- ajax同步非阻塞,同步、异步、阻塞与非阻塞理解
同步跟异步,阻塞与非阻塞,这两组概念出现在IO操作中常常让人混淆不清,这里是根据自己想到的,看到的,学到的,整理了自己的理解. 这四个概念两两组合,会形成四个新的概念,如下: 1.同步阻塞 :客户端发 ...
- 同步与异步,阻塞与非阻塞的区别
1.概念剖析 相信很多从事linux后台开发工作的都接触过同步&异步.阻塞&非阻塞这样的概念,也相信都曾经产生过误解,比如认为同步就是阻塞.异步就是非阻塞,下面我们先剖析下这几个概念分 ...
- setstate是同步还是异步_【vert.x准备篇1】同步和异步,阻塞和非阻塞概念澄清
为了能更好的理解vert.x的线程模型,我们必须要先明确几个概念:同步(Synchronous)和异步(Asynchronous),阻塞(Blocking)和非阻塞(Non-Blocking).关于这 ...
- 那些年让你迷惑的阻塞、非阻塞、异步、同步
点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! 在IT圈混饭吃,不管你用什么编程语言.从事前端还是后端,阻塞.非阻塞.异步.同步这些概念,都需要清 ...
- 这次,让我们捋清:同步、异步、阻塞、非阻塞
继上一篇说透I/O模型后,我们来谈谈网络 I/O 经常会伴随的几个容易令人混淆的概念:同步.异步.阻塞.非阻塞的区别. 这篇写完之后铺垫就差不多了,之后就正式开始 Netty 深度剖析了,敬请期待,嘻 ...
- 阻塞、非阻塞、多路复用、同步、异步、BIO、NIO、AIO 一锅端
承接上文的操作系统,关于IO会涉及到阻塞.非阻塞.多路复用.同步.异步.BIO.NIO.AIO等几个知识点.知识点虽然不难但平常经常容易搞混,特此Mark下,与君共勉. 1 阻塞跟非阻塞 1.1 阻塞 ...
- 并发、并行、串行、同步、异步、阻塞、非阻塞
并发.并行.串行.同步.异步.阻塞.非阻塞 实际上同步与异步是针对应用程序与内核的交互而言的. 同步过程中进程触发IO操作并等待(也就是我们说的阻塞)或者轮询的去查看IO操作(也就是我们说的非阻塞)是 ...
- 理解同步异步、阻塞与非阻塞
"阻塞"与"非阻塞"与"同步"与"异步"不能简单的从字面理解,提供一个从分布式系统角度的回答. 1.同步与异步 同步和异 ...
- linux socket 阻塞与非阻塞,同步与异步
在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式: 同步/异步主要针对C端: 同步: 所谓同步,就是在c端发出 ...
最新文章
- jQuery学习笔记--Helloworld
- sql数组转换为字符串
- C++类的使用(五)—— 多态
- 数平精准推荐 | OCR技术之系统篇
- 高德服务单元化方案和架构实践
- LINUX之samba服务器的安装与配置(基于redhat 6.3发行版)
- 《数学之美》马尔科夫链的扩展-贝叶斯网络
- matlab55中值滤波,基于MATLAB的中值滤波算法实现
- cad相对坐标快捷键_47个快捷键+50个CAD技巧助你玩转CAD
- ROS笔记(一)xxx.launch文件详解
- linux常用命令导图
- 6.0 深度学习图片常见转换操作
- 家装市场分析:2022年家装企业比例稳步上升
- Serv-U 15.1.2安装使用
- MySQL基础架构:一条SQL“查询语句”是如何执行的
- 用vue-cli创建项目后npm run serve 报错Component name “main“ should always be multi-word vue/multi-word-compo
- Apache Doris 向量化设计与实现
- 简单实用的PPT框架结构
- 如何用计算机打地鼠,《“打地鼠”游戏的程序实现》教学设计
- Delphi图像处理 -- 图像合成
热门文章
- 【HDU - 6081】度度熊的王国战略(SW算法,全局最小割)
- java生成world文件_HelloWorld.java文件如何创建?
- android标题栏消失,安卓标题栏为什么没有显示
- mysql 全文本检索的列_Mysql 全文本检索
- vue获取当前月最后一天_10月的最后一天,有哪些不想谈恋爱适合发朋友圈的文案?...
- 三相同步电机怎么接线图_智能电表怎么接线 单相 三相电表接线图大全
- 计算机选购知识点,笔记本选购知识点,找准自己的需求才是王道
- leetcode面试题 02.08. 环路检测
- python学习实例(4)
- ubuntu apache配置负载均衡篇(二)