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