zoukankan      html  css  js  c++  java
  • netty源码学习—课堂3

    netty channel nio socket,呵呵,接下来说的就是它们几个。

    DefaultNioSocketChannelConfig.java

    主要属性:

    • writebuffer的两个游标阈值:high watermark, low watermark,一般前者为后者的一半
    • writeSpinCount, 
    • predictor, 预测channel的receive buffer大小。有adaptive和fixed两种实现。1)AdaptiveReceiveBufferSizePredictor, 根据上次读操作的具体情况来"自适应的"调节下次recive buffer大小,预估的越准,内存使用率就越高。如果上次读全部完全利用了,那么本次继续尝试加大。如果上次的连续两次读都没有用完,那么本次尝试减小。其他情况将暂时保持不变。2) FixedReceiveBufferSizePredictor, 固定大小的。

    NioSocketChannel

    • 各种属性:1) 标识channel状态的各种ST_OPEN, ... 2) 用于真正通信的socket 3) worker 4) localAddress, remoteAddress 5) 关于配置的config 6) 关于兴趣的 interestOpsLock 7) 关于写的writeLock, writeTask writeTaskInTaskQueue writerBuffer, inWriteNowLoop, writeSuspended, currentWriteEvent, currentWriteBuffer 8)关于读的 居然木有,咋回事
    • 子类:NioAcceptedSocketChannel
    • 子类:NioClientSocketChannel

    NioClientSocketChannelFactory.java

    • boss 大总管,仅负责connect事件
    • workers 负责connect以后的全部事宜
    • sink NioClientSocketPipelineSink,是downstream事件接纳池,例如bind, connect, open, write, set interest_ops等,这类事件最后都沉到该池子当中,进行处理。

    AbstractServerChannel.java

    • X
    • 子类:NioServerSocketChannel,与NioClientSocketChannel功能对等。
    • 子类:

    NioServerSocketChannelFactory.java  与NioClientSocketChannelFactory.java功能对等

    • boss 大总管,仅负责connect事件,可以有多个,例如针对port 44与88,可以有两个boss线程分别主管
    • workers 负责connect以后的全部事宜
    • sink NioServerSocketPipelineSink是downstream事件接纳池,例如bind, connect, open, write, set interest_ops等,这类事件最后都沉到该池子当中,进行处理。

    NioProviderMetadata.java

    • ConstraintLevel,不同的硬件生产厂商,对应不同的约束级别。
    • 0 - no need to wake up to get / set interestOps (most cases)
    • 1 - no need to wake up to get interestOps, but need to wake up to set.
    • 2 - need to wake up to get / set interestOps (old providers)
  • 相关阅读:
    06 is和==的区别 encode()编码 decode()解码
    05 dic的增删改查 字典的嵌套 考试题dic.get()的相关使用
    03 编码 int ,bool,str的常用操作 主要讲str
    01 基本数据类型 变量 if语句
    04 列表的增删改查 常用方法 元祖 range
    02 while循环 格式化输出 运算符
    多校2 Harmonious Army hdu6598 网络流
    P3159 [CQOI2012]交换棋子 网络流
    P2172 [国家集训队]部落战争 最大流
    P2402 奶牛隐藏 网络流
  • 原文地址:https://www.cnblogs.com/alipayhutu/p/2779953.html
Copyright © 2011-2022 走看看