目录一、简单介绍二、常见操作1、使用默认线程池2、使用自定义线程池3、获取线程的执行结果三、处理异步结算的结果四、异常处理五、组合 CompletableFuture六、并行运行多个 CompletableFuture七、案例1、从多个平台获取书价格2、从任意一个平台获取结果就返回一、简单介绍CompletableFuture 同时实现了 
......
261
0
0
2023-06-26
目录正文并发导致的Data Racing问题同步控制--synchronized同步实例方法和代码块同步静态方法线程挂起和唤醒线程等待--join总结正文使用多线程并发处理,目的是为了让程序更充分地利用CPU ,好能加快程序的处理速度和用户体验。如果每个线程各自处理的部分互不相干,那真是极好的,我们在程序主线程要做的同步控制最多也就是等待几个工作线程的执行完
......
242
0
0
2023-06-26
1、为什么要使用 多线程 选择多线程的原因,就是因为快。举个例子: 所以,我们使用多线程就是因为: 在正确的场景下,设置恰当数目的线程,可以用来程提高序的运行速率。更专业点讲,就是充分地利用 CPU 和I/O的利用率,提升程序运行速率。 当然,有利就有弊,多线程场景下,我们要保证线程安全,就需要考虑加锁。加锁如果不恰当,就很很耗性能。 2. 创建线程
......
258
0
0
2023-06-25
目录一、前言二、规范使用Java集合一、前言现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点,其它维度的知识点也会影响到软件的最终交付质量。比如:五花八门的错误码会人为地增加排查问题的难度;数据库的表结构和索引设计缺陷带来的系统架构缺陷或性能风险;工程结构混乱导致后续项目维护艰难;没有鉴权的漏洞代码容易被黑客攻击等。依据约束力强弱及
......
238
0
0
2023-06-25
一、速度与效率与激情什么是速度?速度就是快,快有很多种。 有小李飞刀的快,也有闪电侠的快,当然还有周星星的快:(船家)”我是出了名够快”。(周星星)“这船好像在下沉?” (船家)“是呀!沉得快嘛”。 并不是任何事情越快越好,而是那些有价值有意义的事才越快越好。对于这些越快越好的事来说,快的表现是速度,而实质上是提效。今天我们要讲的 java 应用的研发效率,
......
241
0
0
2023-06-25
目录开篇一、使用 Feign 的示例1.1 添加依赖1.2 启用 Feign1.3 编写 FeignClient 接口1.4 编写对应的服务端1.5 调用 FeignClient二、如何切换 Client2.1 使用 Apache 的 HTTP Client2.1.1 添加依赖2.1.2 配置启用2.2 使用 OkHttp2.2.1 添加依赖2.2.2 配置
......
295
0
0
2023-06-25
目录1 使用场景2 MultipartResolver接口2.1 MultipartResolver的功能2.2 在DispatcherServlet中的使用2.3 MultipartResolver实现类&配置方式3 StandardServletMultipartResolver解析器3.1 StandardServletMultipa
......
258
0
0
2023-06-25
JDK 动态代理是代理模式的一种,且只能代理接口。spring也有动态代理,称为CGLib,现在主要来看一下JDK动态代理是如何实现的?一、介绍 JDK动态代理是有JDK提供的工具类Proxy实现的,动态代理类是在运行时生成指定接口的代理类,每个代理实例(实现需要代理的接口)都有一个关联的调用处理程序对象,此对象实现了InvocationHandler,最终
......
258
0
0
2023-06-25
目录正文使用pagehelper遇到的坑说明pagehelper的至简使用方式pagehelper实现原理简说为什么pagehelper的分页会乱套?分页问题复现正文我们在使用数据库进行查询时,很多时候会用到分页展示功能,因此除了像mybatis这样的完善的orm框架之外,还有pagehelper这样的插件帮助减轻我们的工作。pagehelper的实现方式是
......
279
0
0
2023-06-25
1、 java .exe: ====================== 运行java程序,这个相信每一位用Java的人知道了。 2、javac.exe: ====================== 编译的Java程序,生成.class文件 3、javaw.exe: ====================== 功 能:跟java命令相对的,可
......
255
0
0
2023-06-25
Java NIO 中的 Channel 分类: File Channel socket Channel ServerSocketChannel DatagramChannel channel 分类 FileChannel: 主要用于文件的读写,可以从磁盘上读取文件,也可以向磁盘上写入文件。 SocketChannel:用于
......
278
0
0
2023-06-25
目录:写在前面什么是 redis ?为什么要用Redis(缓存)?为什么要用Redis 而不用 map/guava 做缓存?Redis与 memcached 的区别Redis的应用场景Redis为什么这么快?Redis有哪些数据类型?各自的使用场景?Redis 的持久化机制是什么?RDB持久化、AOF持久化的区别如何保证缓存与数据库双写时的数据一致性?什么是
......
275
0
0
2023-06-25
一、查询 sql 尽量不要使用select *,而是具体字段 1、反例 SELECT * FROM user
2、正例 SELECT id,username,tel FROM user
3、理由 节省资源、减少网络开销。 可能用到 覆盖索引 ,减少回表,提高查询效率。 注意:为节省时间,下面的样例字段都用*代替了。 二、避免在where子句中使用
......
412
0
0
2023-06-25
在我们平常的编码中,通常会将一些对象保存起来,这主要考虑的是对象的创建成本。比如像线程资源、数据库连接资源或者 TCP 连接等,这类对象的初始化通常要花费比较长的时间,如果频繁地申请和销毁,就会耗费大量的系统资源,造成不必要的性能损失。 并且这些对象都有一个显著的特征,就是通过轻量级的重置工作,可以循环、重复地使用。这个时候,我们就可以使用一个虚拟的池
......
278
0
0
2023-06-25
前言今天给大家更新的是一篇关于 多线程 面试的文章,也是霸哥根据时下热门的面试内容给大家进行总结的,如有雷同,请多见谅!本篇文章属于干货内容! 请各位读者朋友一定要坚持读到最后,完整阅读本文后相信你对多线程会有不一样感悟,下次面试和面试官也能杠一杠相关内容了。 那么,话不多说,直接上干货了 ( ps:文末有福利,请记得查阅 )1.什么是进程?进程是系统中正在
......
266
0
0
2023-06-24