单线程;no-blocking ; Event Driven
Node不为每一个用户开辟一个线程
所以选择了单线程,如果想照顾所有的用户,那么就必须非阻塞I/O否则一个人的I/O就会把别人的,自己阻塞了。一旦非阻塞I/O,这个人就会放弃CPU的使用权,换成另外一个人使用CPU(或者执行后面的代码)
所以CPU的执行率达到100%,第一个人的I/O结束了,就要用时间通知线程,执行回调函数,此时必须有事件循环,有一个排队调度机制,
Node中有超过半数的C++代码,在搭建事件环
Node的特点:
1)没有自己的语法,使用v8引擎,V8引擎解析JS的效率非常高。并且V8中很多东西都是异步的。Node将V8中一些功能自己没有重写,直接移植到服务器上
2)没有web容器,就是安装配置完成之后没有一个根目录