Linux select、poll和epoll

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

https://www.zhihu.com/question/28594409

 

posted @ 2020-01-10 16:21  happyyoung  阅读(179)  评论(0)    收藏  举报