向南是个万人迷

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2019年1月2日

摘要: Netty源码分析第八章: 高性能工具类FastThreadLocal和Recycler 第七节: 获取异线程释放的对象 上一小节分析了异线程回收对象, 原理是通过与stack关联的WeakOrderQueue进行回收 如果对象经过异线程回收之后, 当前线程需要取出对象进行二次利用, 如果当前sta 阅读全文
posted @ 2019-01-02 17:02 向南是个万人迷 阅读(594) 评论(0) 推荐(0) 编辑

摘要: Netty源码分析第八章: 高性能工具类FastThreadLocal和Recycler 第六节: 异线程回收对象 异线程回收对象, 就是创建对象和回收对象不在同一条线程的情况下, 对象回收的逻辑 我们之前小节简单介绍过, 异线程回收对象, 是不会放在当前线程的stack中的, 而是放在一个Weak 阅读全文
posted @ 2019-01-02 16:29 向南是个万人迷 阅读(573) 评论(1) 推荐(0) 编辑

摘要: Netty源码分析第八章: 高性能工具类FastThreadLocal和Recycler 第五节: 同线程回收对象 上一小节剖析了从recycler中获取一个对象, 这一小节分析在创建和回收是同线程的前提下, recycler是如何进行回收的 回顾第三小节的demo中的main方法: 这里就是一个同 阅读全文
posted @ 2019-01-02 15:53 向南是个万人迷 阅读(491) 评论(0) 推荐(0) 编辑

摘要: Netty源码分析第八章: 高性能工具类FastThreadLocal和Recycler 第四节: recycler中获取对象 这一小节剖析如何从对象回收站中获取对象: 我们回顾上一小节demo的main方法中, 从回收站获取对象 这个通过Recycler的get方法获取对象, 我们跟到get方法中 阅读全文
posted @ 2019-01-02 15:45 向南是个万人迷 阅读(477) 评论(0) 推荐(0) 编辑

摘要: Netty源码分析第八章: 高性能工具类FastThreadLocal和Recycler 第三节: recycler的使用和创建 这一小节开始学习recycler相关的知识, recycler是netty实现的一个轻量级对象回收站, 在netty中, recycler的使用也是相当之频繁的 recy 阅读全文
posted @ 2019-01-02 15:40 向南是个万人迷 阅读(680) 评论(1) 推荐(0) 编辑

摘要: Netty源码分析第八章: 高性能工具类FastThreadLocal和Recycler 第二节: FastThreadLocal的set方法 上一小节我们学习了FastThreadLocal的创建和get方法的实现逻辑, 这一小节学习FastThreadLocal的set方法的实现逻辑 set方法 阅读全文
posted @ 2019-01-02 15:16 向南是个万人迷 阅读(416) 评论(0) 推荐(0) 编辑

摘要: Netty源码分析第八章: 高性能工具类FastThreadLocal和Recycler 概述: FastThreadLocal我们在剖析堆外内存分配的时候简单介绍过, 它类似于JDK的ThreadLocal, 也是用于在多线程条件下, 保证统一线程的对象共享, 只是netty中定义的FastThr 阅读全文
posted @ 2019-01-02 15:02 向南是个万人迷 阅读(897) 评论(1) 推荐(0) 编辑

摘要: Netty源码分析第七章: 编码器和写数据 第五节: Future和Promise Netty中的Future, 其实类似于jdk的Future, 用于异步获取执行结果 Promise则相当于一个被观察者, 其中promise对象会一直跟随着channel的读写事件, 并跟踪着事件状态, 然后执行相 阅读全文
posted @ 2019-01-02 14:27 向南是个万人迷 阅读(713) 评论(0) 推荐(1) 编辑

摘要: Netty源码分析第七章: 编码器和写数据 第四节: 刷新buffer队列 上一小节学习了writeAndFlush的write方法, 这一小节我们剖析flush方法 通过前面的学习我们知道, flush方法通过事件传递, 最终会传递到HeadContext的flush方法: 这里最终会调用Abst 阅读全文
posted @ 2019-01-02 14:08 向南是个万人迷 阅读(706) 评论(0) 推荐(0) 编辑

摘要: Netty源码分析七章: 编码器和写数据 第三节: 写buffer队列 之前的小节我们介绍过, writeAndFlush方法其实最终会调用write和flush方法 write方法最终会传递到head节点, 调用HeadContext的write方法: 这里通过unsafe对象的write方法, 阅读全文
posted @ 2019-01-02 13:57 向南是个万人迷 阅读(595) 评论(0) 推荐(0) 编辑