nodejs是一个服务端运行javascript的平台,跟asp.net,java,python,ruby,php一样,把javascript的定位从前端给移到了后端,以google v8为javascript引擎,所以javascript执行效率相当高,跟一般的web后台开发语言不一样。
nodejs的特点是异步,无阻塞的运行程序,所以开发nodejs程序时,需要把所有的业务逻辑拆分成一个一个的模块,以回调的方式来执行,也许这是它的一个不足,但是现在已经有相应的扩展模块简化异步模块的开发。
一、nodejs可以提供什么功能?
1、命令行工具设计
2、web系统设计
3、客户端javascript编译器
4、web服务器
二、nodejs与一般的后台编译性语言有什么不同?
1、nodejs本身包含一个apache/ target=_blank class=infotextkey>http服务器,不像asp.net程序需要一个iis,或者java的程序需要一个apache。
2、nodejs是异步io,事件驱动的;一般的程序调用都是执行一个命令之后,线程阻塞,一直等到命令成功之后,才会去执行下面的事情,但是nodejs不一样,所有的io,网络通信,磁盘操作都是由事件来控制的,nodejs进程在同一时刻只会处理一个事件,完成后立即进入事件轮询并检查处理后面的事件。
如下图:
3、nodejs是单线程执行的,除非是多cpu,一般一个cpu都是一个线程执行的,这样可以清除线程上下文切换带来的性能损失。