epoll
epoll的优势在于epoll_wait方法只遍历epoll对象就绪队列rdlist的fd, 不是遍历所有的fd,然后去找就绪的事件。
在epoll_ctl时, 添加被监听的fd时, 会给每个fd设置回调函数, 如 socket的回调函数是tcp_poll, 在网卡接收到数据时,tcp_poll会被回调, 这是会把 sock 移动到epoll对象的 rdlist, 就绪队列上;
epoll的优势在于epoll_wait方法只遍历epoll对象就绪队列rdlist的fd, 不是遍历所有的fd,然后去找就绪的事件。
在epoll_ctl时, 添加被监听的fd时, 会给每个fd设置回调函数, 如 socket的回调函数是tcp_poll, 在网卡接收到数据时,tcp_poll会被回调, 这是会把 sock 移动到epoll对象的 rdlist, 就绪队列上;