前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >张龙netty学习笔记 P55

张龙netty学习笔记 P55

作者头像
平凡的学生族
发布2019-05-25 09:25:36
5360
发布2019-05-25 09:25:36
举报
文章被收录于专栏:后端技术后端技术

ChannelFuture和Future

netty对Jdk的Future进行了封装,做出了自己的Future,使其拥有更全面的接口。而ChannelFuture是对netty的Future的进一步封装,专门用于Channel的I/O使用。

Channel

https://blog.csdn.net/zero__007/article/details/80949350 Channel和Unsafe 每个Channel有一个ChannelPipeline

ChannelHandlerContext

我发现,AbstractChannelHandlerContext有一个成员变量叫next,或许就是指下一个Handler的ChannelContext。如果是,那是不是每个Handler会被分配不同的ChannelHandlerContext?

volatile

https://www.cnblogs.com/dolphin0520/p/3920373.html volatile保证可见性和禁止指令重排序。

https://blog.csdn.net/anjxue/article/details/51038466 volatile对于double-check的作用:使new操作立即可见

synchronized关键字是防止多个线程同时执行一段代码,那么就会很影响程序执行效率,而volatile关键字在某些情况下性能要优于synchronized,但是要注意volatile关键字是无法替代synchronized关键字的,因为volatile关键字无法保证操作的原子性。通常来说,使用volatile必须具备以下2个条件:

  1. 对变量的写操作不依赖于当前值
  2. 该变量没有包含在具有其他变量的不变式中

https://blog.csdn.net/u012312373/article/details/44983523 内存可见性

happens-before

https://www.cnblogs.com/chenssy/p/6393321.html

double-check

https://blog.csdn.net/wxy941011/article/details/81091118

为处理原版非延迟加载方式瓶颈问题,我们需要对 instance 进行第二次检查,目的是避开过多的同步(因为这里的同步只需在第一次创建实例时才同步,一旦创建成功,以后获取实例时就不需要同获取锁了

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.03.22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ChannelFuture和Future
  • Channel
  • ChannelHandlerContext
  • volatile
  • happens-before
  • double-check
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档