zoukankan      html  css  js  c++  java
  • 异步I/O

    学习node的同学都知道,Node的结构与Chrome十分相似。它们都是基于事件驱动的异步框架,Node通过事件驱动服务I/O;

    来我们说下一异步I/O,对于前段来说,最直观场景体现就是ajax请求;

    我们看一个例子

            $.post('/url', {title: '深入浅出Node.js'}, function (data) {
                console.log('收到响应');
            });
            console.log('发出Ajax结束');

     当post执行的时候,我们会先看到 "发出Ajax结束",而"收到响应"的时间是不被预期的,

    异步调用对结果的捕捉符合"Don't call me,I will call you!"的原则,来我们看一下执行的过程;

    在 node 中异步也很常见,已读取文件为例,我们看一段代码

            var fs = require('fs');
    fs.readFile(
    '/path',function(err,file){ console.log('读取文件结束'); }); console.log('发起读取文件');

    这里的 “发起读取文件” 是在 “读取文件” 之前执行的,是不是和ajax的非常类似呢!

    在node 中 90%以上的操作是异步的进行的,异步执行在时间上明显低于同步

    再看一段代码

            fs.readFile('/path1',function(err,file){
                console.log('读取文件结束');
            });
            fs.readFile('/path2',function(err,file){
                console.log('读取文件结束');
            });

    这一段代码的执行的时间是什么???

    如果的同步的话,执行时间将是两者之和

  • 相关阅读:
    linux之用户和用户组管理详解
    linux权限管理
    flink 1.7.2 安装详解
    TJI读书笔记13-内部类
    TJI读书笔记12-接口
    TJI读书笔记11-多态
    TJI读书笔记10-复用类
    TJI读书笔记09-访问控制权限
    TIJ读书笔记08-数组的初始化和可变长参数形参
    TJI读书笔记07-初始化
  • 原文地址:https://www.cnblogs.com/pangzi666/p/5887852.html
Copyright © 2011-2022 走看看