Java高并发教程:Future异步回调模式

Netty和Guava一样,实现了自己的异步回调体系: Netty继承和扩展了JDK Future系列异步回调的API,定义了自身的Future系列接口和类,实现了异步任务的监控、异步执行结果的获取。

总体来说,Netty对Java Future异步任务的扩展如下:

(1)继承Java的Future接口,得到了一个新的属于Netty自己的Future异步任务接口; 该接口对原有的接口进行了增强,使得Netty异步任务能够以非阻塞的方式处理回调的结果

注意:Netty没有修改Future的名称,只是调整了所在的包名, Netty的Future类的包名和Java的Future接口的包名不同

(2)引入一个新接口,GenericFutureListener,用于表示异步执行完成的监听器。 Netty使用了监听器的模式,异步任务的执行完成后的回调逻辑抽象成了Listener监听器接口。可以 将Netty的GenericFutureListener监听器接口加入Netty异步任务Future中,实现对异步任务执行状态的事件监听

总体上说, 在异步非阻塞回调的设计思路上,Netty和Guava的思路是一致的

  • 《Netty、Redis、Zookeeper高并发实战》

Original: https://www.cnblogs.com/MrSaver/p/13072517.html
Author: 子烁爱学习
Title: Java高并发教程:Future异步回调模式

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/538092/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • JDK成长记13:(深度好文)你能从3个层面分析volatile底层原理么?(上)

    前几节你应该学习到了Thread和ThreadLocal的底层原理,在接下来的几节中,让我们一起来探索volatile底层原理吧! 不知道你有没有这样的感受:有很多工程师都很难说清…

    Java 2023年6月5日
    072
  • Vue3 封装 Element Plus Menu 无限级菜单组件

    本文分别使用 SFC(模板方式)和 tsx 方式对 Element Plus el-menu 组件进行二次封装,实现配置化的菜单,有了配置化的菜单,后续便可以根据路由动态渲染菜单。…

    Java 2023年6月16日
    057
  • SpringBoot+MDC实现全链路调用日志跟踪

    实现HttpRequestInterceptor接口并重写process方法 ​ 如果调用线程中含有traceId,则需要将获取到的traceId通过request中的header…

    Java 2023年5月30日
    046
  • 基于Spring+SpringMvc+MyBatis的简单图书管理系统的实现(SSM标准开发模板)

    最终页面效果 工程目录 具体代码实现 pom.xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"…

    Java 2023年6月7日
    096
  • mysql慢查询日志总结

    查看慢查询是否开启: mysql>show variables like ‘%slow_query_log%’; Variable_name Valu…

    Java 2023年6月5日
    056
  • Spring的AOP底层解析

    AOP原理的前置知识 动态代理在Spring中的应用: 1.AOP 2.注解@Lazy (2)Spring中针对动态代理的封装 1.ProxyFactory (1)介绍 基于两种动…

    Java 2023年6月16日
    067
  • nginx去掉inde.php方法

    /** * 打开nginx配置文件nginx.conf,添加以下内容 * 注意层级,在 http{ server { location { #这里添加 } } } 添加 */ lo…

    Java 2023年5月30日
    065
  • MySQL搭建主从集群详细步骤~

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月7日
    051
  • Spring Security Oauth2 单点登录案例实现和执行流程剖析

    在线演示 演示地址:http://139.196.87.48:9002/kitty 用户名:admin 密码:admin Spring Security Oauth2 OAuth是…

    Java 2023年5月30日
    067
  • Java 基础【19】代理

    Java 代理(Proxy)模式与现实中的代理含义一致,如旅游代理、明星的经纪人。 在目标对象实现基础上,增加额外的功能操作,由此来扩展目标对象的功能。 JavaWeb 中最常见的…

    Java 2023年5月29日
    085
  • Spring Boot与多数据源那点事儿~

    持续原创输出,点击上方蓝字关注我 目录 前言 写这篇文章的目的 什么是多数据源? 何时用到多数据源? 整合单一的数据源 整合Mybatis 多数据源如何整合? 什么是动态数据源? …

    Java 2023年6月14日
    077
  • java spring 事务流程控制包装 transactionscope

    java spring 中 @transactional 导致整个方法都是事务,无法提前 commit,为了缓存同步,需要在 commit 后清空缓存,就办不到了。 因 c# tr…

    Java 2023年5月29日
    096
  • java读取文本文件的方法

    文本文件是我们日常开发中,常用的简单存储载体,那么如何读取文本文件呢? 下文笔者将通过示例的方式讲述读取文本文件的方法分享,如下所示: 文本文件是最常用的文件格式之一, 下文是笔者…

    Java 2023年6月15日
    071
  • 设计模式之命令模式

    本文通过解决老王经常搞错借书人的问题,来引出行为型模式中的命令模式。为了在案例之上理解的更加透彻,我们需要了解命令模式在源码中的应用。最后指出命令模式的应用场景和优缺点。 一、引出…

    Java 2023年6月8日
    068
  • 「Java分享客栈」随时用随时翻:微服务链路追踪之zipkin搭建

    前言 微服务治理方案中,链路追踪是必修课,SpringCloud的组件其实使用很简单,生产环境中真正令人头疼的往往是软件维护,接口在微服务间的调用究竟哪个环节出现了问题,哪个环节耗…

    Java 2023年6月9日
    078
  • java1

    1. 自我介绍2. 讲一件你印象最深刻的事没事怎么解决的3. JAVA垃圾回收机制怎么工作的4. AOP是怎么实现的,有几种方式,分别说说5. TCP/UDP的区别是什么,怎么实现…

    Java 2023年5月29日
    063
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球