一文读懂Netty的核心构成块
底层原理源码是开发者进阶架构师必经之路,今天来看看Netty的核心构成块都是什么。
1、Channel
在java NIO就有这个,其实就是java NIO的基本构造。他代表到一个实体(比如一个硬件,一个文件等)
目前可以把它看作是传入和传出数据的载体。因此它可以打开或者关闭,连接或者断开
2、Callback(回调)
可以从名称中来进行理解,回调就是一个方法,一个指向已经被提供给另一个方法的引用,比如在一个操作完成后需要通知相关信息常用方式之一
Netty在内部使用了回调来处理事件;当一个回调被触发时,相关的事件被interface-ChannnelHandler的实现处理。
3、Future
该类提供了进入异步任务时,可以通过该类将在未来的某个时刻完成的任务,并提供对其结果的访问
JDK中预置了该类interface java.util.concurrent.Future,但是所提供的实现,只允许手动检查对应操作是否完成,或者一直阻塞直到异步任务结束获取到结果,这么索呢?就是非常繁琐,所以Netty提供了对它的实现ChannelFuture,用于在执行异步操作的时候使用ChannelFuture提供了几个额外的方法,这些方法可以使我们能够注册多个ChannelFutureListener实例,监听器回调方法为:operationComplete(),将会在对应的操作完成时被调用,然后监听器可以判断该操作是否完成还是出错了,如果出错了还可以检索产生的Throwable,简单来说:由ChannelFureListener提供的通知机制消除了手动检查对应的操作是否完成的必要,每个Netty的传出都返回一个ChannelFuture,反之可得,传入都不会阻塞,证实Netty是完全基于异步和事件驱动。
一文读懂Netty的核心构成块相关推荐
- 一文读懂ELN的核心价值以及与LIMS的区别
电子实验记录本/笔记本(Electronic Lab Notebook,ELN),为"满足法律.法规.技术和科学专业性要求,用于创建.存储.检索和共享数据的电子实验记录系统".EL ...
- 一文读懂:十大DNA甲基化研究核心问题
大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因. DNA甲基化是最早被发现.也是研究最深入的表观遗传调控机制之一,近年来关于DNA甲基化的研究成果屡屡见刊.小编翻阅各类文献,为大家总结了 ...
- 从根上理解高性能、高并发(七):深入操作系统,一文读懂进程、线程、协程
本文引用了"一文读懂什么是进程.线程.协程"一文的主要内容,感谢原作者的无私分享. 1.系列文章引言 1.1 文章目的 作为即时通讯技术的开发者来说,高性能.高并发相关的技术概念早 ...
- 一文读懂EfficientDet
一文读懂EfficientDet. 今年年初Google Brain团队在 CVPR 2020 上发布了 EfficientDet目标检测模型, EfficientDet是一系列可扩展的高效的目标检测 ...
- 一文读懂AI简史:当年各国烧钱许下的愿,有些至今仍未实现
一文读懂AI简史:当年各国烧钱许下的愿,有些至今仍未实现 导读:近日,马云.马化腾.李彦宏等互联网大佬纷纷亮相2018世界人工智能大会,并登台演讲.关于人工智能的现状与未来,他们提出了各自的观点,也引 ...
- 一文读懂大数据平台——写给大数据开发初学者的话!
一文读懂大数据平台--写给大数据开发初学者的话! 文|miao君 导读: 第一章:初识Hadoop 第二章:更高效的WordCount 第三章:把别处的数据搞到Hadoop上 第四章:把Hado ...
- 一文读懂图卷积GCN
" 本文的内容包括图卷积的基础知识以及相关辅助理解的知识点,相信同学们看完后一定能平滑上手理解GCN!" 作者:苘郁蓁 来源:知乎专栏 郁蓁的机器学习笔记. 编辑:happyGir ...
- gps导航原理与应用_一文读懂角速度传感器(陀螺仪)的应用场景
前文我们大致了解陀螺仪的来历,原理和种类,那么,它与我们的日常生活有怎样的关系呢? 陀螺仪器最早是用于航海导航,但随着科学技术的发展,它在航空和航天事业中也得到广泛的应用.陀螺仪器不仅可以作为指示仪表 ...
- 一文读懂 | CPU负载均衡实现
在<一文读懂 | 进程怎么绑定 CPU>这篇文章中介绍过,在 Linux 内核中会为每个 CPU 创建一个可运行进程队列,由于每个 CPU 都拥有一个可运行进程队列,那么就有可能会出现每个 ...
最新文章
- 社会丨中外大学校长:人工智能时代 未来高校教什么
- 使用AngularJS上传文件
- 使用nginx+Apache负载均衡及动静分离
- 三十八、学Sql,不了解Sql注入怎么行?
- 【Linux网络编程】浅谈 TCP 三次握手和四次挥手
- 双鉴探测器是哪两种探测方式结合_老师傅带你看懂火灾探测器的种类和基本原理,看完涨知识了...
- java 异常 检查型和非检查型
- fatal error C1010: unexpected end of file while looking for precompiled header directive
- vue路由vue-router的使用
- 函数声明应该写在什么位置?main函数里面还是前面?(都可以,只要在调用语句的前面即可)
- 托管c++ (CLI) String^ 、 std::string 、 std::ostringstream的相互转化
- PDF文件转换成什么格式最适合编辑?
- win7原版映像中添加usb3.0驱动
- java 字数_Java字数统计程序
- 【报告分享】AIoT智能生活场景营销研究报告-小米中传(附下载)
- java lambdamart库,LambdaMART笔记
- ODCC 2016峰会即将召开——十大“技术大餐”提前揭秘
- qcom android GPS 启动流程
- 矩阵理论| 基础:矩阵范数
- 矩阵理论| 特殊矩阵:幂等矩阵、投影、正交投影