当前位置: 首页 > news >正文

Netty 组件介绍 - Future Promise

在异步处理时,经常用到这两个接口

 netty 中的 Future 继承 jdk 中的 FutuFuture,而Promise 又对 netty Future 进行了扩展。
 

  • idk Future 只能同步等待任务结束(或成功或失败)才能得到结果
  • netty Future 可以同步等待任务结束得到结也可以异步方式得到结果,但都是要等在务结束。
  • netty Promise 不仅有 netty Future 的功能,而且脱离了任务独立存在只作为两个线程间传递结果的容器

future

public class demo {private static final Logger logger = LoggerFactory.getLogger(pm.eventLoop.EventLoop.class);public static void main(String[] args) throws ExecutionException, InterruptedException {NioEventLoopGroup group = new NioEventLoopGroup();EventLoop loop = group.next();Future<Integer> future = loop.submit(new Callable<Integer>() {@Overridepublic Integer call() {logger.info("执行计算");try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}return 50;}});//1、阻塞获取logger.info(future.get().toString());//2、异步监听future.addListener(new GenericFutureListener<Future<? super Integer>>() {@Overridepublic void operationComplete(Future<? super Integer> future) throws Exception {logger.info(future.getNow().toString());}});

promise

public class demo {private static final Logger logger = LoggerFactory.getLogger(pm.eventLoop.EventLoop.class);public static void main(String[] args) throws ExecutionException, InterruptedException {NioEventLoopGroup group = new NioEventLoopGroup();EventLoop loop = group.next();DefaultPromise<Object> promise = new DefaultPromise<>(loop);new Thread(()->{try {Thread.sleep(1000);int i = 1 / 0;promise.setSuccess(80);} catch (InterruptedException e) {e.printStackTrace();promise.setFailure(e);}}).start();Object o = promise.get();}
}


http://www.mrgr.cn/news/64847.html

相关文章:

  • 数据库Redis篇
  • Kafka 消息丢失如何处理?
  • Css-常用指令大全
  • CSS Text(文本)
  • WorkFlow源码剖析——Communicator之TCPServer(中)
  • NFTScan Site:以蓝标认证与高级项目管理功能赋能 NFT 项目
  • linux驱动-输入子系统框架讲解
  • 项目模块十五:HttpResponse模块
  • [前端] 为网站侧边栏添加搜索引擎模块
  • 大数据新视界 -- 大数据大厂之 Impala 性能优化:数据存储分区的艺术与实践(下)(2/30)
  • C语言指针基础
  • 在linux系统中安装pygtftk软件
  • 数据结构与算法—基础篇
  • 最大报酬 (E卷)
  • Docker远程管理和应用容器远程部署
  • 基于django+Vue的在线学习平台 (含源码数据库)
  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-31
  • 提高交换网络可靠性之认识STP根桥与端口角色
  • CTF-pwn:libc2.27指针劫持[gyctf_2020_signin]
  • 多臂老虎机——入门强化学习
  • Qt 应用开发之 MVC 架构
  • Linux入门-基础指令和权限
  • ssm044基于java和mysql的多角色学生管理系统+jsp(论文+源码)_kaic
  • 有向无环图的拓扑排序——CSP-J1真题讲解
  • 高等数学习题练习-函数的连续性
  • 支持 Mermaid 语言预览,用通义灵码画流程图