`

netty源码分析之ChannelFuture

阅读更多

           在netty里面所有的nio相关的操作都是异步的,返回一个channelfuture对象,这个里面可以添加一些listener,然后再相关操作完成后进行触发,最主要的是通过这个对象可以查询相关操作的执行情况,是成功了,还是失败了。

         我们来就来看看DefaultChannelFuture的实现就好,我们应该能猜到netty的思想,里面有一个listener的集合,addListener会添加listener到集合里面,然后再真正的io操作完成之后来触发相应的listener,这里面有很多关于多线程的程序,这个还不是很了解,应该后面多恶补恶补。

          

private void notifyListeners() {
        // This method doesn't need synchronization because:
        // 1) This method is always called after synchronized (this) block.
        //    Hence any listener list modification happens-before this method.
        // 2) This method is called only when 'done' is true.  Once 'done'
        //    becomes true, the listener list is never modified - see add/removeListener()
        if (firstListener != null) {
            notifyListener(firstListener);
            firstListener = null;

            if (otherListeners != null) {
                for (ChannelFutureListener l: otherListeners) {
                    notifyListener(l);
                }
                otherListeners = null;
            }
        }
    }

 

分享到:
评论

相关推荐

    netty源码深入分析

    《Netty源码深入分析》是由美团基础架构部的闪电侠老师所分享的一系列关于Netty源码解析的视频教程。以下将根据标题、描述、标签以及部分内容等信息,对Netty及其源码进行深入剖析。 ### Netty简介 Netty是基于...

    netty源码分析之服务端启动全解析

    Netty是一款高性能的网络应用程序框架,它使用Java编程语言开发,主要用于网络应用程序的快速和易于开发,支持TCP和UDP...通过对Netty源码的深入分析,可以更好地理解其工作机制,对开发高性能的网络应用有极大的帮助。

    netty源码和相关中文文档

    接下来,我们谈谈 Netty 的源码分析。通过阅读 Netty 源码,我们可以深入了解其设计模式和优化策略: 1. **EventLoop(事件循环)**:Netty 使用单线程的 EventLoop 实现了事件的高效分发,减少了线程切换的开销。 ...

    netty源码解析视频

    #### 五、Netty源码分析实战案例 1. **ChannelHandlerContext与ChannelHandlerAdaptor详解**: - 分析`ChannelHandlerContext`的生命周期及其与`ChannelHandler`之间的交互方式。 - 深入理解`...

    netty源码深入剖析.txt

    《Netty源码深入剖析》一书旨在帮助读者深入了解Netty框架的工作原理和技术细节,从基础知识入手,逐步过渡到高级优化技巧,使开发者能够更好地掌握并应用Netty于实际项目中。 ### 一、Netty简介与核心特性 Netty...

    Netty源码阅读笔记

    以上内容便是Netty源码阅读笔记中提到的主要知识点。这些知识点构成了Netty框架的核心,涵盖了从数据容器到事件处理,再到粘包半包问题处理的完整流程。了解和掌握这些知识点对于深入使用Netty进行网络编程具有重要...

    netty源码阅读笔记.pdf

    1. **Netty源码分析系列文章**:这部分内容可能涵盖了Netty的整体架构、核心组件以及关键算法的解析,包括线程模型、缓冲区管理、事件驱动模型等方面。作者可能从整体上介绍了Netty的设计原则和实现方式。 2. **...

    极客时间《Netty源码剖析与实战》学习记录-boy-learning-netty.zip

    在 "boy-learning-netty-master" 这个压缩包中,很可能是包含了一个个人学习 Netty 的项目或笔记,包含了源码分析、实践示例等内容。通过阅读和研究这些材料,你将能够更深入地理解和运用 Netty,提升你的网络编程...

    netty4.1源码

    源码分析中,你可以关注以下几个关键部分: - **Channel**:这是Netty中的基本抽象,代表一个网络连接,可以是服务器端的监听套接字,也可以是客户端的连接。 - **EventLoop**:每个Channel都会绑定到一个EventLoop...

    Netty in action 第二版 源码

    源码分析对于深入理解Netty的工作原理至关重要。 Netty的核心概念包括以下几个方面: 1. **ByteBuf**: ByteBuf是Netty中的缓冲区类,替代了Java NIO的ByteBuffer。ByteBuf提供了更高效、更安全的字节操作,并且...

    Netty源码解析-服务启动过程.pdf

    ### Netty源码解析——服务启动过程 #### 一、Netty概述 Netty是一个高性能、异步事件驱动的网络应用框架,它被广泛应用于快速开发高性能协议服务器和客户端。Netty通过高度优化的设计和实现提供了低延迟和高吞吐...

    netty.zip源码

    Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。...对于想要深入学习网络编程、并发编程或Java NIO的开发者来说,Netty源码无疑是一个极好的学习资源。

    Netty权威指南 第2版 带书签目录 完整版.pdf

    Netty源码分析是深入理解Netty的重要步骤。在第二版的《Netty权威指南》中,作者对Netty源码进行了全面解析,包括源码结构、关键源码的阅读技巧以及Netty的自定义扩展方法等,帮助开发者建立对Netty深层次的理解。 ...

    netty 通过端口调用关闭

    Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。在本文中,我们将深入探讨“Netty ...在实践中,结合源码分析和使用工具,可以进一步提升我们的开发和运维能力。

    精通并发与netty视频教程(2018)视频教程

    47_Netty服务器与客户端编码模式回顾及源码分析准备 48_Netty与NIO系统总结及NIO与Netty之间的关联关系分析 49_零拷贝深入剖析及用户空间与内核空间切换方式 50_零拷贝实例深度剖析 51_NIO零拷贝彻底分析与Gather...

    javanetty源码-java_study-:netty+java(源代码参考)

    通过阅读和分析Netty源码,开发者能够更好地理解其内部工作原理,优化网络应用,以及定制适合自己项目的特性和功能。对于Java开发者来说,深入学习Netty源码不仅可以提升网络编程技能,也有助于解决实际问题,比如...

    Netty权威指南 第2版源码

    通过阅读和分析《Netty权威指南 第2版源码》,开发者不仅能了解Netty的内部工作原理,还能掌握如何根据实际需求定制和优化Netty的应用,提升网络通信的效率和稳定性。此外,源码学习也有助于深入理解Java并发编程和...

    精通并发与netty 无加密视频

    第47讲:Netty服务器与客户端编码模式回顾及源码分析准备 第48讲:Netty与NIO系统总结及NIO与Netty之间的关联关系分析 第49讲:零拷贝深入剖析及用户空间与内核空间切换方式 第50讲:零拷贝实例深度剖析 第51讲...

    netty-code源码

    通过深入学习和分析"netty-code"源码,你可以了解Netty如何处理网络通信的各个阶段,包括连接建立、数据传输、异常处理等,这对于开发高性能的网络应用非常有帮助。同时,源码中的示例可以帮助你更好地理解和运用...

    高性能网络通信框架Netty从入门到核心源码剖析.rar

    四、Netty源码分析 1. Channel初始化:探讨ServerBootstrap和Bootstrap如何创建并初始化Channel。 2. 事件传播:分析EventLoop如何处理和分发事件,以及Handler如何接收和处理这些事件。 3. ByteBuf实现:研究...

Global site tag (gtag.js) - Google Analytics