多进程、多线程和事件驱动的 I/O:Web 服务器中的权衡。Web 服务器需要支持并发。服务器应及时、公平地为客户端提供服务,以确保没有客户端因为某些其他客户端导致服务器挂起而饿死。多进程和多线程以及它们的混合是实现并发的传统方法。Node.js 代表了另一种方式,一种基于异步 I/O 系统库的方式,例如 epoll (Linux) 和 kqueue (FreeBSD)。为了突出各种方法之间的权衡,我编写了三个用接近底层的 C 语言编写的回显服务器:forking_server、threading_server 和 polling_server。