1.Linux epoll
epoll全称eventpoll(poll译为投票数、计票),是Linux内核中的一种可扩展IO事件处理机制,能够提高应用程序同时有大量IO操作请求时的性能,它是Linux I/O多路复用的其中一个实现(除了epoll外,还有select和poll)。
那么linux系统是如何处理IO事件的呢?
一般当系统同时发起多个IO事件请求时,Linux需要轮询所有事件,处理每个事件对应的事件流。由于系统中链接Linux内核的IO事件太多了,每一次轮询都需要耗费大量的时间和资源。
使用epoll_wait机制后,epoll会把每一个流对应的IO事件通知内核,这样内核就能根据具体的IO事件去处理对应的stream流。
①Linux I/O多路复用
在Linux中,任何可以进行I/O操作的对象都可以看做是流,比如一个文件、socket、pipe都可看作流。通过调用read()可以从流中读出数据,通过write()可以往流中写入数据。
假定现在需要从流中读数据,但是流中还没有数据,比如客户端要从socket中读数据,但是服务器还没有把数据传回来&#