zoukankan      html  css  js  c++  java
  • epoll如何实现

    epoll的事件机制是如何实现的?

    当网卡接收到网络报文后,可以先解析到报文里面的ip地址与端口号,这样就可以定位到具体的socket。

    我们再看看netty是如何利用epoll这个特性的。首先看看netty中channel的一个方法:

    java.net.SocketAddress remoteAddress();

    这个方法返回channel对应的远程地址。当网卡解析到网络报文后,就可以拿到ip和端口号,就可以定位到具体的channel,
    这样,就不需要像select和poll那样遍历所有的fd来找就绪的事件。从而高效的通过事件机制,直接通知对应的channel来
    处理事件。

    epoll总结起来比poll和select等多路复用方式有两个改进点:

    1、减少了遍历循环,因为活跃连接只占总并发连接的很小一部分;

    2、内存拷贝的工作量。DirectByteBuf 和HeapByteBuf,DirectByteBuf可以省去数据从系统空间到用户空间拷贝的过程。

  • 相关阅读:
    树链剖分
    NOI2015 软件包管理器(树链剖分+线段树)
    9.11NOIP模拟题
    9.10NOIP模拟题
    bzoj1121[POI2008]激光发射器SZK(结论)
    9.9 NOIP模拟题
    树形dp
    P1272 重建道路(树形dp)
    Codeforces Round #419 (Div. 2)
    9.2NOIP模拟题
  • 原文地址:https://www.cnblogs.com/yipihema/p/10818049.html
Copyright © 2011-2022 走看看