1、IO多路复用
通常所说的IO,包括磁盘IO和网络IO。而IO多路复用,则主要指的是网络IO,在Linux中一切皆文件,网络IO也用fd(file descriptor)来表示。复用什么东西呢?简而言之,就是多个网络IO复用一个线程。
2、select
无差别轮询
fd数量受限
3、epoll是Linux内核的一种IO多路复用机制,当大量文件描述符中只有少量活跃时,epoll能够极大地提高CPU利用率。
1、阻塞IO:有多少fd,就阻塞多少线程。
2、非阻塞IO:有多少fd,就有多少线程在轮询。
3、IO多路复用:只阻塞select线程。
LT模式
ET模式
异步IO
参考链接:
http://www.masterraghu.com/subjects/np/introduction/unix_network_programming_v1.3/ch06lev1sec2.html