我是靠谱客的博主 单纯柠檬,最近开发中收集的这篇文章主要介绍Netty(十)——Channel功能之剖,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

       Channel是netty网络操作抽象类,它聚合网络的读、写、客户端发起连接、主动关闭连接、链路关闭,获通信双方的网络地址等,也包括获取该Chanel的EventLoop获取缓冲分配器的ByteBufAllocator和pipeline等。也是非常非常重要的。

       一,看下它的设计理念:1,Netty在Channel接口层,采用Facade模式进行统一封装,将网络I/O操作和相关的其他操作封装起来,统一对外提供;2,Channel接口的定义尽量大而全,为SocketChannel和ServerSocketChannel提供统一的视图,由不同子类进行实现不同的功能,最大程度的实现功能和接口的重用;3,具体实现采用聚合而非包含的方式,将相关功能聚合在Channel中,由Channel统一负责分配和调度,功能实现更加灵活。

       二,来看下Channel的相关功能:

    三,看看Channel的相关继承关系统:

    1,server端:

    2,client端:

       四,相关类的源码分析,这里我还是用思维导图的形式,将源码和分析部分放到了注释中,其实按照我的思维导图,用心看这些类,基本上都能读个差不多的:

 

      好,今天主要讲了Channel的相关功能、接口类结构、源码分析。细心的朋友一定会看到其实在Channel中有一个内部接口Unsafe,其实Channel很多操作都是通过调用Unsafe来实现的,下篇我们学习Unsafe相关知识。

      其实JDK也有Unsafe类,我们可以先学习一下这个:说一说Java的Unsafe类(https://www.cnblogs.com/pkufork/p/java_unsafe.html)

      PS:思维导图的下载:Channel相关总结 

最后

以上就是单纯柠檬为你收集整理的Netty(十)——Channel功能之剖的全部内容,希望文章能够帮你解决Netty(十)——Channel功能之剖所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部