异步IO的并发效率要远高于用同步IO依靠多线程和多进程实现的并发,在Linux平台上,主要有select、poll、信号驱动IO和epoll四种模型。其中select和poll是两种非常古老的异步模型,古老就意味着支持的平台比较多,可移植性好,但其效率很低。而信号驱动IO和epoll模型效率要远高于select和poll,但其只在Linux平台上支持,移植性不好。在效率比较上,在数百数千级的并发量上,四种模型的效率基本上差不多,而在超过数百数千的并发量以后,select和poll的效率就远不如信号驱动和epoll了,epoll是目前主流的服务器设计模式,号称是可以支持百万级别并发量的。后面我们会依次学习到select、poll和epoll,信号驱动IO实现起来比较复杂,效率又与epoll差不多,同时epoll又具有信号驱动IO的几乎所有有点,因此信号驱动IO用到的不多,就不介绍了。