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

Node.js单线程异步编程

 
阅读更多

   我们都知道node.js是单线程的,它又是如何实现异步编程的呢?答案是通过事件回调。   

 

   异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了。

 

   回调函数在完成任务后就会被调用,Node.js使用了大量的回调函数,Node 所有 API 都支持回调函数。

 

   例如,我们可以一边读取文件,一边执行其他命令,在文件读取完成后,我们将文件内容作为回调函数的参数返回。这样在执行代码时就没有阻塞或等待文件 I/O 操作。这就大大提高了 Node.js 的性能,可以处理大量的并发请求。

 

    非阻塞代码实例:

    创建test.txt文件,内容如下:    

Hello World!!!

    创建Main.js文件,代码如下:    

var fs = require("fs");

fs.readFile('input.txt', function (err, data) {
    if (err) return console.error(err);
    console.log(data.toString());
});

console.log("程序执行结束!");

    测试结果如下:    

$ node Main.js
程序执行结束!
Hello World !!!

 

分享到:
评论

相关推荐

    Node.js-StuQ分享专题《深入浅出jsNode.js异步流程控制》完整版

    10. **并发控制**:Node.js的单线程模型并不意味着不能并行处理任务。通过EventEmitter、Promise.all或worker_threads模块,可以实现资源的有效管理和任务的并发执行。 通过《深入浅出js(Node.js)异步流程控制》...

    Node.js开发-Node.js入门.pdf

    * 不适合计算密集型应用程序: Node.js 不适合计算密集型应用程序,因为它的单线程模型限制了其计算性能。 Node.js 是一个功能强大且高效的服务器端运行平台,能够满足各种应用程序的需求。但是,开发者需要具备...

    Node.js By Example

    Node.js的核心特性包括单线程事件循环、异步编程、模块系统以及强大的文件系统操作等。在本书中,你将学习如何利用这些特性来开发高效的应用程序。 1. **事件驱动编程**:Node.js采用事件驱动模型,当有I/O操作时,...

    node.js 安装包 10.16.3-x64

    - **单线程**:尽管Node.js在底层多线程处理,但对外表现为单线程模型,降低了复杂性,同时通过事件循环机制处理并发请求。 - **模块化**:Node.js 提供了一套强大的模块化系统,便于代码复用和项目管理。 2. **...

    node.js实战 pdf+源码

    2. **异步编程**:Node.js的核心特性之一是其对异步编程的支持。通过回调函数、Promise和async/await等机制,开发者可以处理大量并发请求,避免了传统的多线程模型中的上下文切换开销。 3. **事件循环**:Node.js...

    《深入浅出Node.js》:Node异步编程解决方案之事件发布-订阅模式.docx

    《深入浅出Node.js》这本书深入探讨了Node.js的异步编程解决方案,特别是事件发布-订阅模式。...通过这种方式,开发者可以利用Node.js的单线程、事件驱动的优势,处理大量并发连接,实现高性能的网络应用。

    node.js最新手册

    4. **非阻塞I/O**:Node.js采用单线程、异步I/O模型,能够高效处理并发请求,适合构建高并发的网络应用。 5. **核心模块**:包括`fs`(文件系统)、`http`(HTTP服务器)、`https`(HTTPS服务器)、`path`(路径处理...

    Node.js 6.x Blueprints(pdf+epub+mobi+code)

    Node.js采用单线程、事件驱动的非阻塞I/O模型,使其在高并发场景下表现出色,特别适合构建实时通信应用,如聊天服务、协作工具等。 在本书中,你将学习到: 1. **基础篇**:首先会介绍Node.js的基础知识,包括安装...

    node.js实战(第2版)PDF&源码.zip

    1. **Node.js基础**:Node.js是什么,它的事件驱动模型,非阻塞I/O,V8引擎以及单线程与异步编程的概念。了解这些基础知识有助于理解Node.js的工作原理。 2. **模块系统**:Node.js的模块化设计是其强大之处,学习...

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

    1. 单线程与事件循环:Node.js采用单线程模型,通过事件循环机制处理并发请求。它使用回调函数来处理异步操作,使得程序能够快速响应并保持高效率。 2. 非阻塞I/O:Node.js利用libuv库实现跨平台的非阻塞I/O操作,极...

    Node.js in Action 第二版 第一章

    Node.js的出现解决了传统服务器端编程中的一些问题,比如异步I/O处理以及单线程事件驱动的编程模式,这些特性让Node.js在处理并发请求时非常高效。 Node.js的编程基础通常包括对JavaScript语言的熟悉,以及对Node....

    Node.js技术参考手册

    异步编程是Node.js的核心,常见的异步方式有回调函数、Promise、async/await等。它们用于处理I/O操作,避免程序因等待结果而阻塞。 **10. 同步与异步的比较** - **同步**:代码按照顺序执行,直到当前任务完成才会...

    Node.js Design Patterns Second Edition.pdf

    Node.js由于其单线程和非阻塞I/O特性,适合使用一些特定的设计模式,比如观察者模式、中介者模式和发布-订阅模式等。 Node.js模块化的设计理念,意味着它利用模块来组织代码,这种做法有助于代码的复用,降低系统的...

    《Node.js权威指南》PDF最新高清扫描版

    Node.js的核心架构基于单线程模型,这意味着所有JavaScript代码都在一个线程上执行。尽管如此,Node.js通过充分利用多核CPU的能力,能够有效地处理高并发负载。 ### Node.js开发基础 #### 1. 安装与配置 - **安装...

    Node.JS介紹

    Node.JS是一种非常强大的服务器端JavaScript运行环境,它通过单线程、事件驱动以及非阻塞IO的设计理念,极大地提高了服务器端的处理能力和响应速度。对于构建高性能、高并发的应用程序而言,Node.JS是一个非常理想的...

    《node.js in action》中文版

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

    Node.js 中文手册 中文文档 chm

    7. **进程和线程管理**:Node.js 使用单线程执行模型,但可以通过子进程模块创建多个进程,实现多任务并行处理。另外,`cluster` 模块可以利用多核 CPU,提高服务器性能。 8. **包管理器(npm)**:Node.js 的包...

Global site tag (gtag.js) - Google Analytics