epoll

我要報(bào)錯(cuò)
  • select和epoll的前世今生

    了解IO多路復(fù)用應(yīng)該對(duì)epoll和select不陌生吧。首先,select是有缺陷的,就是當(dāng)事件發(fā)生(調(diào)用select)的時(shí)候,都需要在用戶態(tài)和內(nèi)核態(tài)之間拷貝fd數(shù)組,要知道用戶態(tài)和內(nèi)核態(tài)之間進(jìn)行內(nèi)存的拷貝是非常昂貴的,如果有上萬級(jí)別的并發(fā)網(wǎng)絡(luò)需要處理的時(shí)候,服務(wù)器根本處理不來。這時(shí)候,Linux內(nèi)核的開發(fā)者應(yīng)該算是簡單又粗暴的增加了一個(gè)內(nèi)核調(diào)用,就是epoll了,有時(shí)候簡單粗暴的東西還是能提高效率的。先來看select接口: