Node.js单线程、非阻塞I/O、事件驱动三大特点的理解
Node.js让JavaScript运行在服务器端的开发平台,它让JavaScript的触角伸到了服务器端,可以与PHP、JSP、Python、Ruby平起平坐。
但Node似乎有点不同:
● Node.js不是一种独立的语言,与PHP、JSP、Python、Perl、Ruby的“既是语言,也是平台”不同,Node.js的使用JavaScript进行编程,运行在JavaScript引擎上(V8)。
● 与PHP、JSP等相比,Node.js跳过了Apache、Naginx、IIS等HTTP服务器,它自己不用建设在任何服务器软件之上。Node.js的许多设计理念与经典架构(LAMP)有着很大的不同,可以提供强大的伸缩能力。
Node.js自身哲学,是花最小的硬件成本,追求更高的并发,更高的处理性能。为了实现这个目标追求,Node.js的创建者Ryan Dahl鬼才般的使用单线程、非阻塞I/O(non-blocking I/O)、事件驱动这三个方法。这三个方法相辅相成,缺一不可,共同致力于提高web服务器的性能,不能分割开来进行理解。本篇博客先开始逐一介绍这三个特点,最后再综合到一起理解。详情见以下链接: