码迷,mamicode.com
首页 > 其他好文 > 详细

node 简介

时间:2017-07-27 20:04:53      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:进程   切换   无法   回调函数   集群   加载   模块   错误   cup   

Nodejs有几个特性:异步IO,事件驱动,单线程,跨平台

  异步IO可以保证在CPU计算的同时,异步的加载IO,加快了应用的访问。不像传统的服务器是使用什么阻塞IO啊、轮训IO等等,它相当于在发送处理请求时,直接传一个回调函数,当异步的IO结束后,会自动的执行回调。

  事件驱动,则是把粒度降低到事件级别。传统的服务器是一个请求分配一个线程进行处理,这样就会增加多线程通信的复杂性。而事件驱动,则简化了事件模型。

  单线程其实主要是因为Nodejs是基于V8浏览器引擎,因此具有单线程的特点,而且内存很小。这样就引出了Node的劣势——无法利用多核CPU、如果应用出现问题整个系统也会崩溃、CPU繁忙将会影响IO。(因此Node中也提供了child_process模块创建子进程,以此来利用多核;引入了一些集群特性,增加健壮性)。

  最后就是跨平台,Nodejs其实并非全部用javascript编写,只是表面的业务语言以及开放的模块才使用js。底层的大部分的模块还是使用C++构建,因此通过切换系统级别的组件,可以直接切换平台。

单线程的弱点

   1、无法利用多核cpu

   2、错误会引起整个应用的退出,应用的健壮性值得考验

   3、大量计算占用cup导致无法继续调用异步的I/O;

 

node的擅长 I/O密集型的业务(绝大多数时间在计算上)

(cpu密集型业务指 等待I/O上花费了大多是时间 )

 

node 简介

标签:进程   切换   无法   回调函数   集群   加载   模块   错误   cup   

原文地址:http://www.cnblogs.com/yudabing/p/7246469.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!