netty草图笔记

学一遍根本记不住,那就再学一遍
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

public static void test_nettyFuture() {NioEventLoopGroup group = new NioEventLoopGroup();log.info("开始提交任务");Future<String> future = group.next().submit(() -> {log.info("执行异步任务...");try {TimeUnit.SECONDS.sleep(5);} catch (InterruptedException e) {e.printStackTrace();}log.info("异步任务执行完成...");return "ok";});log.info("任务提交结束");future.addListener(new GenericFutureListener<Future<String>>() {@Overridepublic void operationComplete(Future<String> future) throws Exception {String s = (String) future.get();log.info("监听任务完成回调.......{}", s);}});log.info("任务添加监听结束");
}
public static void test_nettyPromise() {NioEventLoopGroup group = new NioEventLoopGroup(10);// 指定谁去通知回调方法, 即哪1个线程去调用operationComplete方法DefaultPromise<String> promise = new DefaultPromise<>(group.next());log.info("提交任务开始");group.next().submit(() -> {try {log.info("开始执行异步任务...");TimeUnit.SECONDS.sleep(5);promise.setSuccess("ojdk");log.info("异步任务还须再执行会儿...");TimeUnit.SECONDS.sleep(5);log.info("异步任务执行完毕...");return "ok";} catch (Exception e) {log.info("异步任务执行发生异常...");promise.setFailure(e);return "ok";}});log.info("提交任务结束");log.info("添加回调开始");promise.addListener(new GenericFutureListener<Future<String>>() {@Overridepublic void operationComplete(Future<String> future) throws Exception {log.info("回调获取到异步结果开始");String result = future.get();log.info("回调获取到异步结果: {}", result);}});log.info("添加回调结束");}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/536219.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6.Java并发编程—深入剖析Java Executors:探索创建线程的5种神奇方式

Executors快速创建线程池的方法 Java通过Executors 工厂提供了5种创建线程池的方法&#xff0c;具体方法如下 方法名描述newSingleThreadExecutor()创建一个单线程的线程池&#xff0c;该线程池中只有一个工作线程。所有任务按照提交的顺序依次执行&#xff0c;保证任务的顺序性…

代码随想录-java-栈与队列总结

栈&#xff08;Stack&#xff09;&#xff1a;是只允许在一端进行插入或删除的线性表。栈是一种线性表&#xff0c;限定这种线性表只能在某一端进行插入和删除操作。进行操作的这一端称为栈顶。 队列&#xff08;Queue&#xff09;是只允许在一端进行插入操作&#xff0c;而在另…

会禁止直播带货吗?

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 种种迹象表明&#xff1a;直播带货已经到了被抑制的阶段&#xff0c;提高线上购物成本&#xff0c;促进消费回归线下实体&#xff0c;好像是主流声音了。 (1)“稳定和扩大传统消费”早就写在了中央经济工作会议和政…

【数据结构与算法】解题20240313

这里写目录标题 一、现场写一个代码&#xff0c;有两个字符串类型的数字&#xff0c;实现一个方法将它们进行相加&#xff0c;并返回相加后的数值。&#xff08;要考虑数据的长度问题&#xff09;一、287. 寻找重复数三、617. 合并二叉树 一、现场写一个代码&#xff0c;有两个…

土木工程设计系列-基于规范的简单基础工程自动设计

土木工程设计系列-基于规范的简单基础工程自动设计 土木工程设计系列-基于规范的简单基础工程自动设计 土木工程设计系列-基于规范的简单基础工程自动设计前言基础工程设计简介程序组成源码文件树文件说明&#xff1a;程序执行流程 部分接口介绍程序使用源码获取 前言 本文为土…

牛客:反转链表

牛客&#xff1a;反转链表 题目描述方法一&#xff1a;代码解题思路 方法二&#xff1a;代码解题思路 题目描述 给定一个单链表的头结点pHead(该头节点是有值的&#xff0c;比如在下图&#xff0c;它的val是1)&#xff0c;长度为n&#xff0c;反转该链表后&#xff0c;返回新链…

代码随想录算法训练营Day45 ||leetCode 70. 爬楼梯 (进阶)|| 322. 零钱兑换 || 279.完全平方数

70. 爬楼梯 &#xff08;进阶&#xff09; 本质上和leetcode377一样 #include <iostream> #include <vector> using namespace std; int main() {int n, m;while (cin >> n >> m) {vector<int> dp(n 1, 0);dp[0] 1;for (int i 1; i < n; i…

【测试】1. 概念 + 基础篇

概念篇 测试相较于开发岗位而言&#xff0c;如果同学们的编程能力稍微弱一些&#xff0c;可以尝试测试方向&#xff08;更简单&#xff09; 1. 什么是软件测试 最常见的理解是&#xff1a;软件测试就是找BUG&#xff0c;发现缺陷。 早期&#xff0c;人们更多的将测试看成是对…

window python开发环境搭建- Anaconda

window python开发环境搭建- Anaconda 下载Anacnoda配置Anconda验证Anaconda是否安装成功验证 conda 是否安装成功验证 pip 是否安装成功验证 python 是否安装成功 配置镜像源conda 镜像源pip 镜像源 pip 常用命令conda 常用命令 下载Anacnoda anacoda官网地址 https://www.an…

语音情感基座模型emotion2vec

在语音技术领域&#xff0c;准确理解用户的语音指令和意图是构建高效人机交互系统的基础。一个高品质的语音交互系统不仅需要理解字面上的语言内容&#xff0c;更应捕捉到说话者语音中蕴含的情感信息。这正是语音情感识别&#xff08;SER&#xff09;技术要解决的问题&#xff…

邮件发送:行业会议邀请的高效新选择

随着数字化浪潮的不断深入&#xff0c;营销手段也在不断的创新和升级。因此&#xff0c;如何高效、精准地触达并吸引目标用户群体参与行业会议已成为众多会议举办方的核心关注点。在这一背景下&#xff0c;邮件推送服务凭借其独特的优势正逐渐成为行业会议邀请的新选择。 邮件推…

C语言例2-3:从键盘输入一个正整数(位数小于或等于10),判断其是否是回文数

回文数是将自然数n的各位数字反向排列得到自然数n1&#xff0c;若n1与n相等&#xff0c;则称为回文数&#xff0c;例如12321 //从键盘输入一个正整数&#xff08;位数小于或等于10&#xff09;&#xff0c;判断其是否是回文数 //回文数是将自然数n的各位数字反向排列得到自然数…