`
364434006
  • 浏览: 586600 次
  • 性别: 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开发指南(随书源码)

    Node.js采用了以往类似语言和框架中非常罕见的技术,总结为关键词就是:非阻塞式控制流、异步I/O、单线程消息循环。不少开发者在入门时总要经历一个痛苦的思维转变过程,给学习带来巨大的障碍。 而本书的目的就是...

    node.js开发指南

    Node.js采用了以往类似语言和框架中非常罕见的技术,总结为关键词就是:非阻塞式控制流、异步I/O、单线程消息循环。不少开发者在入门时总要经历一个痛苦的思维转变过程,给学习带来巨大的障碍。 而本书的目的就是...

    要在计算机上安装 Node.docx

    其单线程、异步的特点使得 Node.js 能够处理大量并发连接,适用于开发高性能的网络应用。 统一的语言:Node.js 使用 JavaScript 作为编程语言,使得前端和后端都能使用同一种语言进行开发,有助于团队协作和代码复用...

    Node.JS开发指南

    Node.js采用了以往类似语言和框架中非常罕见的技术,总结为关键词就是:非阻塞式控制流、异步I/O、单线程消息循环。不少开发者在入门时总要经历一个痛苦的思维转变过程,给学习带来巨大的障碍。 而本书的目的就是...

    Node.js 异步编程之 Callback介绍(一)

    Node.js 基于 JavaScript 引擎 v8,是单线程的。Node.js 采用了与通常 Web 上的 JavaScript 异步编程的方式来处理会造成阻塞的I/O操作。在 Node.js 中读取文件、访问数据库、网络请求等等都有可能是异步的。对于 ...

    node-basics:Node.js基础

    节点基础 Node.js简介 什么是Node.js? Node.js是一个开源服务器环境 Node.js是免费的 Node.js可在各种平台(Windows,Linux,Unix,Mac OS X等)上运行 ... Node.js运行单线程,非阻塞,异步编程,这非

    node-workshop:ScaleConf Node.js Workshop示例说明异步编程和事件循环

    让我们从以伪代码编写的朴素单线程服务器开始: // file: single_threaded_server.psuedo while ( true ) { // Blocking listen on some port for a request listen (localhost: 8080 ) // Accept the ...

    node.js不得不说的12点内容

    2.事件驱动、异步式I/O的编程模式(单线程)是其核心。 3.node.js的javascript引擎是v8,来自google chrome项目。V8号称是目前世界上最快的javascript引擎。 4.node.js内建了http服务器支持,也就是说你可以轻而易举...

    nodejs-course:Node.JS简介和概述

    事件驱动Node.js使用带有事件循环的单线程模型,这就是为什么要强制采用异步编程风格的原因。阻塞与非阻塞 不好 :prohibited: // Blockingconst fs = require ( 'fs' ) ;const data = fs . readFileSync ( '/

    Node.js 的异步 IO 性能探讨

    Node.js 的卖点是「异步单线程」,虽然主流 Web 后端编程语言中,对异步编程有很好支持的语言并不少,但只有 Node.js 丧心病狂地将所有 IO 强制异步进行。

    nodejs中实现阻塞实例

    node.js中与生俱来的单线程编程、回调函数异步式风格让我们有时喜有时忧。先说单线程,很多人会费解于node.js的单线程如何能做到高并发?这个问题不是本文重点,点到为止。澄清一点,node.js的单线程仅仅指...

    NodeJs开发指南

    Node.js采用了以往类似语言和框架中非常罕见的技术,总结为关键词就是:非阻塞式控制流、异步I/O、单线程消息循环。不少开发者在入门时总要经历一个痛苦的思维转变过程,给学习带来巨大的障碍。 而本书的目的就是...

    Node.js异步I/O学习笔记

    “异步”这个名词的大规模流行是在Web 2.0浪潮中,它伴随着...Node.js是首个将异步作为主要编程方式和设计理念的平台,伴随着异步I/O的还有事件驱动和单线程,它们构成Node的基调。本文将介绍Node是如何实现异步I/O的。

    async-yield-co:为什么需要 co 的详细示例(在 node.js 中)

    要理解,你需要了解 JavaScript,node.js 是什么,事件循环(单线程)在其中是如何工作的,并且有异步编程的经验。 所有材料都按编号排序(推荐的母带顺序),并且它们本身包含所有必要的注释。示范令0x - 同步和...

    详解Node.js中的事件机制

    node.js是基于单线程无阻塞异步式的I/O,异步式的I/O指的是当遇到I/O操作的时候,线程不阻塞而是进行下面的操作,那么I/O操作完成之后,线程时如何知道该操作完成的呢? 当操作完成耗时的I/O操作之后,会以事件的...

    使用Jscex改善JavaScript异步编程体验

    “单线程”和“无阻塞”是JavaScript的天性,因此任何需要“耗时”的操作,例如等待、网络通信、磁盘IO都只能提供“异步”的编程接口。尽管这对服务器的伸缩性和客户端的响应能力都大有脾益,但是异步接口在使用上要...

    异步JS框架的作用以及实现方法

    JavaScript是一门单线程语言,因此一旦有某个API阻塞了当前线程,就相当于阻塞了整个程序,所以“异步”在JavaScript编程中占有很重要的地位。异步编程对程序执行效果的好处这里就不多谈了,但是异步编程对于开发者...

Global site tag (gtag.js) - Google Analytics