前言总结:原文地址:理解Node.js事件轮询Node小应用:Node-sample智者看群书,也体验了Node.js的两个基本概念Node.js第一.js的基本概念是I/O操作是昂贵的:因此,当前技术中最大的浪费来自于等待I/O操作完成。有几种方法可以解决性能影响:同步方法:按顺序一个接一个地处理请求。优点:简单;缺点:任何一个请求都可以阻止所有其他请求。启动一个新进程:每个请求都启动一个新进程。优点:简单;缺点:很多链接意味着很多过程。启动一个新线程:每个请求启动一个新线程。优点:简单,比进程对系统内核更友好,因为线程比进程轻很多;缺点:并非所有机器都支持线程,多线程编程在处理共享资源时会很快成为一个问题。它太复杂了。第二个基本概念是,为每个连接创建一个新线程会占用大量内存(例如:与Nginx相比,Apache会耗尽内存)。Apache是多线程的:它为每个请求启动一个新线程(或进程,取决于你的配置),你可以看到它是如何在并发连接增加时一点一点地耗尽内存的。Nginx和Node.js都不是多线程的,因为线程的消耗太“重”了。它们都是单线程和基于事件的,这消除了处理许多连接的线程/进程开销。单线程确实只是一个线程:你不能并行执行任何代码,例如:下面的“sleep”会阻塞服务器1秒:functionsleep(){varnow=newData().getTime();while(newDate().getTime()
