文章引用了一些内容,出自node布道师朴灵所著<<nodejs 深入浅出>>一书,向前辈致敬。
node.js是基于谷歌浏览器javascript引擎建立的一个平台,用于搭建快速、易扩展的网络应用。node.js借助于事件驱动、非阻塞I/O模型变得轻量和高效,非常适合运行在分布式设备上的数据密集型的实时应用。
node的特点:
1、单线程
node.js保持了javascript在浏览器中的单线程特点。在大并发的场景下,我们通常使用多进程或者多线程的方式来应对,即一个请求对应一个进程或者一个请求对应一个线程。我们知道OS在创建进程和线程的时候需要为其开辟资源空间,线程的创建和销毁,线程间的上下文切换,这些对OS来说都是一笔很大的开销。而单线程占据OS资源很少,不用像多线程那样在意线程间的数据同步、数据共享、死锁,也没有多线程那样上下文切换所带来的性能上的开销。
当然,单线程也有缺陷,主要体现在以下3点:
* 无法利用多核cpu