`
364434006
  • 浏览: 586886 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Node.js事件循环

 
阅读更多

Node.js事件循环

Node.js 是单进程单线程应用程序,但是可以通过事件回调支持异步编程和并发,所以性能非常高。

Node.js 的每一个 API 都是异步的,并作为一个独立线程运行,使用异步函数调用,并处理并发。

Node.js 基本上所有的事件机制都是用设计模式中观察者模式实现。

Node.js 单线程类似进入一个while(true)的事件循环,直到没有事件观察者退出,每个异步事件都生成一个事件观察者,如果有事件发生就调用该回调函数.

 

事件驱动程序

Node.js 使用事件驱动模型,当web server接收到请求,就把它关闭然后进行处理,然后去服务下一个web请求。

当这个请求完成,它被放回处理队列,当到达队列开头,这个结果被返回给用户。

这个模型非常高效可扩展性非常强,因为webserver一直接受请求而不等待任何读写操作。(这也被称之为非阻塞式IO或者事件驱动IO)

在事件驱动模型中,会生成一个主循环来监听事件,当检测到事件时触发回调函数。

node.js事件驱动

 

Node.js程序工作原理

在 Node 应用程序中,执行异步操作的函数将作为执行方法的最后一个参数, 回调函数接收错误对象作为第一个参数。

分享到:
评论

相关推荐

    深入理解Node.js 事件循环和回调函数

    主要介绍了深入理解Node.js 事件循环和回调函数,详细的介绍Node.js 事件循环和Node.js回调函数,需要学习的可以参考一下。

    Node.js 开发指南.pdf

    第1章 Node.js简介 1 1.1 Node.js是什么 2 1.2 Node.js能做什么 3 1.3 异步式I/O与事件驱动 4 1.4 Node.js的性能 5 1.4.1 Node.js架构简介 5 1.4.2 Node.js与PHP+Nginx 6 1.5 JavaScript简史 6 ...

    深入浅析Node.js 事件循环、定时器和process.nextTick()

    尽管JavaScript是单线程的,但通过尽可能将操作放到系统内核执行,事件循环允许Node.js执行非阻塞I/O操作。 由于现代大多数内核都是多线程的,因此它们可以处理在后台执行的多个操作。 当其中一个操作完成时,内核会...

    深入浅析Node.js 事件循环

    Node.js 是单进程单线程应用程序,但是通过事件和回...Node.js 单线程类似进入一个while(true)的事件循环,直到没有事件观察者退出,每个异步事件都生成一个事件观察者,如果有事件发生就调用该回调函数. 事件驱动模型

    详解node.js 事件循环

    Node.js 单线程类似进入一个while(true)的事件循环,直到没有事件观察者退出,每个异步事件都生成一个事件观察者,如果有事件发生就调用该回调函数. 事件驱动程序 Node.js 使用事件驱动模型,当web server接收到...

    node.js开发指南(随书源码)

    Node.js是一种方兴未艾的新技术,诞生于2009年。... 而本书的目的就是帮助读者扫清这些障碍,学会使用Node.js进行Web后端开发,同时掌握事件驱动的异步式编程风格,以便进一步利用Node.js的高级特性。

    Node.js 事件循环详解及实例

    主要介绍了 Node.js 事件循环详解及实例的相关资料,Node.js 有多个内置的事件,我们可以通过引入 events 模块,并通过实例化 EventEmitter 类来绑定和监听事件,需要的朋友可以参考下

    基于node.js的文件管理系统源码.zip

    同步的形式会阻塞 Node.js 事件循环和进一步的 JavaScript 执行,直到操作完成。 异常会被立即地抛出,可以使用 try…catch 处理,也可以冒泡。 const fs = require('fs'); try { fs.unlinkSync('文件'); ...

    Node.js+开发指南

    第1章 Node.js简介 1 1.1 Node.js是什么 2 1.2 Node.js能做什么 3 1.3 异步式I/O与事件驱动 4 1.4 Node.js的性能 5 1.4.1 Node.js架构简介 5 1.4.2 Node.js与PHP+Nginx 6 1.5 JavaScript简史...

    Node.js MongoDB AngularJSWeb开发中文版.part1

    第4章 在Node.js中使用事件、监听器、定时器和回调 51 4.1 了解Node.js事件模型 51 4.1.1 比较事件回调和线程模型 51 4.1.2 在Node.js中阻塞I/O 52 4.1.3 会话示例 54 4.2 将工作添加到事件队列 54 4.2.1 实现定时器...

    Node.js事件循环(Event Loop)和线程池详解

    主要介绍了Node.js事件循环(Event Loop)和线程池详解,这篇文章比较浅显地探讨了有关事件循环的内部运作机制和技术细节,都是经过深思熟虑的,需要的朋友可以参考下

    tick-id:给Node.js事件循环上的每个刻度打上自己的ID

    给Node.js事件循环上的每个刻度打上自己的ID。 滴答ID并不是Node.js固有的,而是该模块的发明。 例如,如果您想跟踪同一滴答发生的事件,该功能将非常有用。 安装 npm install tick-id 用法 tick-id模块公开了一个...

    node.js开发指南

    Node.js是一种方兴未艾的新技术,诞生于2009年。... 而本书的目的就是帮助读者扫清这些障碍,学会使用Node.js进行Web后端开发,同时掌握事件驱动的异步式编程风格,以便进一步利用Node.js的高级特性。

Global site tag (gtag.js) - Google Analytics