小结:默认的ChannelId由machineId、processId、sequence、timestamp、random构成 。machineId:可以由参数io.netty.machineId自定义 , 默认为8位随机byte构成
processId:可以由参数io.netty.processId自定义 , 默认为4位进程ID
sequence:原子自增序号AtomicInteger , 每创建一个Chanenl会进行自增
timestamp:8位的timestamp
random:4位的随机整数
@2 unsafe初始化
unsafe即I/O的核心操作 , byte的读写都靠它来处理 。服务端NioServerSocketChannel初始化使用NioMessageUnsafe 。客户端NioSocketChannel初始化使用NioSocketChannelUnsafe 。以NIO为例看下Unsafe的类图结构 。
文章插图
unsafe类图结构
@3 ChannelPipeline初始化
默认使用DefaultChannelPipeline , 从构造方法可以看出为链表结构 , 详细分析另文分析 。
protected DefaultChannelPipeline(Channel channel) {this.channel = ObjectUtil.checkNotNull(channel, "channel");succeededFuture = new SucceededChannelFuture(channel, null);voidPromise =new VoidChannelPromise(channel, true);tail = new TailContext(this);head = new HeadContext(this);head.next = tail;tail.prev = head;}
推荐阅读
- 在淘宝退货退款,一般什么时候收到退款 淘宝退款是收到货物之后才退款吗
- 茶山谱之勐海勐宋,勐宋茶山之大曼吕
- 茶文化之潮汕文化,枣庄市茶文化研究会召开第届会员代表大会
- 茶山揭秘系列之同庆河,中茶桐箐河同庆河享受稀缺的秘境野韵奇香
- 第二杯半价真的值得买吗?
- 美甲之后的可怕后果
- 大户赛之最,河边寨,大户赛品鉴
- 美白果汁
- 茶之冷暖苦甜自重,儿孙的富贵茶
- 春分茶韵春之气,中茶茗山茶广别老寨茗山中最迷人的那首诗