博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从零开始学Node.js(六)
阅读量:6495 次
发布时间:2019-06-24

本文共 549 字,大约阅读时间需要 1 分钟。

node.js的阻塞与非阻塞

我们都知道javascript是单线程的,node.js是一个基于Chrome V8 引擎的 javascript 运行时环境

单线程的好处:1、没有线程间同步问题。2、节省创建线程资源。3、节省上下文切换时间。

但是单线程也有问题,所有的操作都必须一个一个来,如果中间有一个操作非常耗时,那整个运行都会阻塞在那里。

为了解决这个问题,js引入了事件和回调函数机制,对于一个IO操作,比如一个ajax,当发出一个异步请求后,程序不会阻塞在那里等待结果的返回,而是继续执行下面的代码。

当请求成功获取到结果后,就会调用回调函数来处理后面的事情,这个就是异步的非阻塞。

同步,当发起一个调用时,在没有获取结果之前,调用不会返回,直到获取结果。事一件一件做,做完一件再做下一件。

异步,当发起一个调用时,在没有获取结果之前,调用就返回了,调用者并不会立即得到结果,而是被调用者通知调用者。通过回调函数处理结果。

在传统的编程模式中,举个例子,你要读一个文件,整个线程都暂停下来,等待文件读完后继续执行。换言之,I/O操作阻塞了代码的执行,极大地降低了程序的效率

《Node入门》推荐去读一下

在Node中除了代码,一切都是并行的!理解这句话,再去学Node,也就事半功倍了!

转载地址:http://nxyyo.baihongyu.com/

你可能感兴趣的文章
Gradle之旅-can not find tools.jar问题解决
查看>>
JavaScript_navigator
查看>>
apache配置文件详解
查看>>
linux下echo的使用总结
查看>>
EDM营销学堂:高效提升营销邮件点击率的技巧
查看>>
ORACLE 11G静默安装配置分解
查看>>
为什么大家不相信国产虚拟化技术?
查看>>
华为首提“业务驱动基础架构”(SDI)
查看>>
Word2010使用技巧之一:熟悉功能区
查看>>
Citrix XenDektop 7 实施十 创建License Server
查看>>
RookeyFrame 通用页面 加载数据 原理
查看>>
hbuilder APP服务器端(C#)推送
查看>>
统计c盘的PE文件的个数 (遍历所有文件)
查看>>
大白话Vue源码系列目录
查看>>
EffectKeyMap系列1(Ubuntu)
查看>>
iOS手势
查看>>
Webpack源码基础-Tapable从使用Hook到源码解析
查看>>
【转载】NBU异机恢复oracle
查看>>
魅族mx5详细打开usb调试模式的步骤
查看>>
php里关于文件下载的方法(两种)
查看>>