`
zhouxiaofeihaha
  • 浏览: 21904 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

node.js 异步IO配合事件循环原理

阅读更多

  最近在研究node.js,和巩固一下javascript高级概念,对node.js设计模式进行个人理解上的总结,本人热衷于node.js,但我是菜鸟。所以把该总结放出,其目的希望多多指点。

想确定思想和原理理解的是否有误。。。。

 

【事件机制】

例如:公共模块处理中,如果出现错误,可以触发“错误事件”,而在这之前可以根据当前不同的业务逻辑预定事件处理程序(函数)。

 

 

【事件循环】

触发事件后,会把该事件放进事件队列,继续处理以后代码,最后维护事件队列——判断是否有事件需要处理,如果有则取出事件的处理函数进行执行。形成循环监听。

 

//事件循环

while(true)

//判断是否有需要处理的事件对象

//取出事件对象保存到另外一个变量中,同时从队列里删除

//取出事件对象的处理函数并执行

//如果执行期间触发某个事件,程序(该线程)并不会再这里阻塞,它只是把事件添加到事件队列,并不执行

//如果调用异步IO方法,程序(该线程)同样不会再这里阻塞,由另外一个线程负责IO工作,IO结束后会通知主线程触发相应事件。

//继续执行剩下代码。

 

 

【异步IO】 && 【事件循环】

“异步IO”其实就是通过在另一个线程中执行IO相关工作,执行完成后会通知主线程,由主线程触发“IO完成”事件(该事件会放进事件队列),由事件循环机制监听处理。

 

 

1
1
分享到:
评论

相关推荐

    Node.js初级+进阶

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它让JavaScript可以在服务器端执行,打破了JavaScript只能在浏览器中运行的传统。本教程旨在帮助初学者及有一定基础的学习者深入理解并掌握Node.js的核心概念...

    浅谈Node 异步IO和事件循环

    【标题】:深入理解Node.js中的异步IO与事件循环 【描述】:本文将探讨Node.js中的异步IO和事件循环机制,帮助开发者更好地理解这两个核心概念,并提供实际应用场景的解析。 【标签】:Node.js 异步IO 事件循环 ...

    Node.js技术参考手册

    - **单线程**:Node.js主要使用一个线程处理所有请求,通过事件循环和异步处理来实现高并发。 - **模块化**:Node.js拥有丰富的模块系统(npm),允许开发者复用和分享代码。 - **文件系统操作**:内置的文件系统API...

    Learning Node.js Development 2018

    在提升应用性能方面,本书会讲解如何利用Node.js的事件循环和进程管理,以及优化异步编程。还会讨论性能监控和测试工具,确保应用的稳定性和效率。 除了基础功能,Node.js还有丰富的第三方库,如Express.js用于快速...

    Node.JS介紹

    - **高并发能力**: 由于采用了事件驱动和异步IO机制,Node.JS能够轻松处理成千上万的同时连接,非常适合构建实时Web应用。 - **低延迟**: 即使在处理大量并发连接的情况下,Node.JS也能保持较低的延迟。 - **轻量级*...

    深入理解Node.js:核心思想与源码分析

    深入到Node.js的工作原理,我们不能忽略异步IO和事件循环这两个核心概念。Node.js的异步非阻塞I/O模型使得它可以高效地处理高并发场景。事件循环是Node.js处理并发事件的一种机制,它依赖于libuv库来实现。当Node.js...

    Node.js资料文件(中文文档)

    - **事件循环**:Node.js的核心是事件循环,它负责调度和执行异步操作。 - **回调函数**:Node.js中的大部分操作都是异步的,通过回调函数来处理完成后的结果。 - **模块系统**:Node.js有内置的模块系统,可以...

    Node.js实现聊天室功能

    Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它以其异步、事件驱动的非阻塞I/O模型而闻名,非常适合构建高性能的网络应用,如聊天室。 首先,让我们了解Node.js的核心概念。Node.js使用事件循环来处理...

    小结Node.js中非阻塞IO和事件循环

    事件循环机制在JavaScript中已经存在,但在Node.js中被利用来处理IO操作的异步回调。事件循环的工作方式是,当一个事件发生(比如IO操作完成),对应的回调函数会被推入到一个队列中。事件循环会不断检查调用栈,...

    Node.js 实战

    Node.js,作为一款基于Chrome V8引擎的JavaScript运行环境,以其异步、非阻塞I/O和事件驱动的特性,在Web开发领域占据了一席之地。这本书“Node.js实战”旨在帮助读者深入理解Node.js的核心概念,并通过实践案例提升...

    《node.js in action》中文版

    首先,你会了解到Node.js的运行环境,包括V8引擎、事件循环机制以及单线程与事件驱动的编程模型。这些概念对于理解Node.js的性能优势至关重要。 接着,书中详细介绍了Node.js的核心模块,如文件系统(fs)、网络...

    node.js api

    Node.js异步事件驱动的特点,使它内建了事件循环和事件发射器机制。 - **events.EventEmitter**:用于实现事件发射器。 ### Buffers缓冲区 在Node.js中,Buffer类用于表示固定长度的字节序列,这些字节序列用于...

    《Node.js入门到精通》--源代码(2015.09.04)

    Node.js是一个基于Chrome V8引擎的JavaScript运行环境,以其异步、非阻塞I/O和事件驱动的特性,在构建高性能网络应用方面表现出色。以下将详细探讨这个主题中的关键知识点: 1. **Node.js基础**:首先,你需要理解...

    使用 node.js + socket.io + enchant.js 的 聊天游戏 示例_JavaScript_代码_下载

    Node.js 用 JavaScript 实现了一个异步I/O模型,通过非阻塞I/O和事件驱动的方式,提高了高并发场景下的性能。在聊天游戏中,Node.js 作为服务器端,负责接收和发送客户端的聊天信息,处理游戏逻辑,并保持客户端的...

    nodejs异步IO的实现 转:http://cnodejs.org/topic/4f16442ccae1f4aa2700113b

    本文将深入探讨Node.js异步IO的实现,并结合给定的资源进行分析。 首先,异步I/O是Node.js的核心特性之一,它允许程序在等待I/O操作完成时继续执行其他任务,从而提高了整体的执行效率和系统资源利用率。在传统的...

    Node.js开发实战详解源代码

    - **事件驱动模型**:Node.js的核心设计是基于事件循环,通过异步I/O处理大量并发请求,从而实现高效率、高性能。 - **非阻塞I/O**:Node.js采用非阻塞I/O模型,避免了线程切换带来的开销,提高了系统的并发能力。...

    node.js安装包集成版本

    5. 性能优化:理解并应用非阻塞I/O、事件循环等原理,以优化应用程序性能。 在学习和使用Node.js的过程中,你还可以探索Express.js(一个快速、开放、极简的Web开发框架)、Socket.IO(实现实时通信)以及各种...

    Apress.Pro.Node.js.for.Developers.Nov.2013.rar

    1. **Node.js基础**:首先,书会介绍Node.js的基础概念,包括其诞生背景、核心组件(如V8引擎和事件循环)以及如何安装和设置开发环境。读者将了解JavaScript在服务器端运行的原理,以及Node.js与传统的Web服务器...

    Professional Node.js(Wrox,2012)

    Node.js使用了一个事件循环、一个非阻塞I/O模型,这使得它非常适合于处理大量并发的小请求。Node.js的安装介绍会指导读者如何在不同的操作系统上安装Node.js,并且创建第一个“Hello World”程序,从而快速上手。 #...

    前端学习笔记-Node.js

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它让JavaScript得以在服务器端执行,开启了前后端同语言的时代。Node.js利用非阻塞I/O和事件驱动模型,使其在处理高并发场景时表现出高效性能。在黑马程序员的...

Global site tag (gtag.js) - Google Analytics