Node.js的特点

node.js的特点

node.js善于I/O,擅长任务调度,不善于计算。专注于实现高性能web服务器端的开发,让javescript运行在服务端的开发平台。node.js没有web容器。

  • 异步I/O(非阻塞I/O)

    异步I/O机制,因此在执行访问数据库的代码之后,将立即去执行其后面的代码,把数据库返回结果的处理代码放在回调函数中,每个调用之间无需等待之前的I/O调用结束,提高了程序的执行效率。

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

    这里的“发起读取文件”是在“读取文件完成”之前输出的,同样,“读取文件完成”的执行也取决于读取文件的异步调用何时结束。

  • ###事件与回调函数(事件驱动)

在node.js中,一个时刻只能执行一个事件回调函数,但在执行一个事件回调函数的过程中,可以转而处理其他事情(比如又有新用户连接),然后返回继续执行原事件的回调函数,这种处理机制称为“事件环”机制。
与其他web后端编程语言相比,node除了异步和事件外,回调函数也是一大特色,回调函数也是最好的接受异步调用返回数据的方式。代码的编写顺序和执行顺序无关。

  • 单线程

    单线程的弱点:

    1.无法利用多核CPU
    2.一个用户造成线程奔溃,整个服务都奔溃
    3.大量计算占用CPU导致无法继续调用异步I/O

    单线程的优点:

    1.操作系统完全不再有线程创建,销毁的时间开销
    2.减少了内存的开销,操作系统的内存换页
    3.不用像多线程编程一样处处在意状态的同步问题
    4.一个8G的内存服务器,可以同时处理超过四万用户的连接

你可能感兴趣的:(node.js)