- 博客(14)
- 收藏
- 关注
原创 ThreadLocal一篇就够了&源码解读
ThreadLocal类用来提供线程内部的局部变量。这种变量在多线程环境下访问(通过get和set方法访问)时能保证各个线程的变量相对独立于其他线程内的变量。ThreadLocal实例通常来说都是private static类型的,用于关联线程和线程上下文。提供线程内的局部变量,不同的线程之间不会相互干扰,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或组件之间一些公共变量传递的复杂度。
2024-04-11 13:57:02
1070
1
原创 京东多线程编排框架AsyncTool-快速掌握
经常会有这样的调用场景:app(或web前端)调用后台的一个接口,该接口接到该请求后,需要调用其他多个微服务来获取数据,最终汇总一个最终结果返回给用户。整如用户请求 我的订单”,后台在收到请求后,就需要去调用用户详情RPC、商品详情RPC、库存RPC,优惠券RPC等等很多个服务。有些服务是可以并行去请求的,但有些服务是依赖于某个服务的返回值的(如查库存、优惠券,就依赖于商品详情回复到达后才能去请求)。
2024-03-30 15:20:32
2245
1
原创 并发编程神器CompletableFuture高级用法与实战
CPU密集型也叫计算密集型,此时,系统运行时大部分的状况是CPU占用率近乎100%,I/O在很短的时间可以完成,而CPU还有许多运算要处理,CPU使用率很高。简单的说,就是需要大量的输入输出,例如读写文件、传输文件,网络请求。exceptionally 用于处理回调链上的异常, 回调链上出现的任何异常,回调链不继续向下执行,都在exceptionally中处理异常。如果你的任务是CPU密集型,使用比处理器更多的线程是没有意义的,所以选择 ParallelSteam,因为它不需要创建线程池,更容易使用。
2024-03-29 21:53:36
1074
1
原创 并发编程神器CompletableFuture
有很多优势,但同时也存在不足,至少表现如下:1、在没有阻塞的情况下,无法对Future的结果执行进一步的操作。Future不会告知你它什么时候完成,你如果想要得到结果,必须通过一个get()方法,该方法会阻塞直到结果可用为止。2、它不具备将回调函数附加到Future后并在Future的结果可用时自动调用回调的能力,而且它无法解决任务相互依赖的问题。
2024-03-29 21:46:39
742
1
原创 JUC并发编程入门
JUC是java.util.concurrent包的缩写,包结构如下,说白了就是并发场景多线程编程的工具类。JUC就是在并发场景下,怎么让程序尽量通过有限的硬件,高效的处理请求,并且保证程序“线程安全”。1、先有进程,然后进程可以创建线程,线程是依附在进程里面的,线程里面可以包含多个协程2、进程之间不共享全局变量,线程之间共享全局变量,但是要注意资源竞争的问题。
2024-03-24 15:30:09
486
1
原创 jsr250的 @RolesAllowed("ADMIN")不生效解决办法
security中jsr250的 @RolesAllowed(“ADMIN”)不生效解决办法在springmvc.xml中添加即可,开启对于AOP的支持,如下:<aop:aspectj-autoproxy proxy-target-class=“true”></aop:aspectj-autoproxy>...
2019-12-15 12:59:18
1452
3
转载 Maven依赖中的scope作用域详解
Maven的一个哲学是惯例优于配置(Convention Over Configuration), Maven默认的依赖配置项...
2019-12-06 09:31:17
328
转载 Java反射机制全解
反射的引入:Object obj = new Student();若程序运行时接收到外部传入的一个对象,该对象的编译类型是Object,但程序又需要调用该对象运行类型的方法:1.若编译...
2019-12-05 17:16:38
207
转载 什么是区块链?这是我见过的最通俗易懂的解释
什么是区块链?这是我见过的最通俗易懂的解释最近区块链非常火,关注度和曝光度持续上升,国内众多巨头公司纷纷张开双臂拥抱,把区块链当做互联网时代的伟大颠覆性创新,一窝蜂研究怎样把区块链变成自己...
2019-12-05 10:13:23
322
1
原创 MyBatis连接池分析
PooledDataSource将java.sql.Connection对象包裹成PooledConnection对象放到了PoolState类型的容器中维护。 MyBatis将连接池中的PooledConnection分为两种状态: 空闲状态(idle)和活动状态(active),这两种状态的PooledConnection对象分别被存储到PoolState容器内的idleConnections...
2019-12-02 13:14:20
389
转载 ssm框架事务回滚问题(艰辛总结)
自己之前是按照视频整合ssm框架,老师在配置好事务之后,并未进行测试,自己也是出于好奇就进行事务回滚测试,自己插入两条记录到数据库,第一条是正确信息,然后第二条是错误的,但是发现当报出异常后数据库信息未发生回滚,自己也是通过各方大佬是各种方法去做测试,依然没有一点效果(搞了一个下午,很崩溃),有时候被bug搞得比较晕的时候最应该做的就是什么也不做,休息一下,然后第二天还是依旧和bug继续做斗争,自...
2019-12-02 11:02:04
331
原创 AspectJ的切入点表达式---execution表达式详解
AspectJ的切入点表达式—execution表达式详解切入点表达式的写法: 关键字:execution(表达式) 表达式: 访问修饰符 返回值 包名.包名.包名...类名.方法名(参数列表) 标准的表达式写法: public void com.itcast.service.impl.AccountServiceImpl.saveAc...
2019-11-23 15:10:18
403
原创 @Resource注入数据为null的问题
@Resource注入数据为null的问题问题原因:jdk版本过高,jdk1.8(不包括1.8)以上会和@Resource产生兼容问题,导致注入数据失败解决方案(2种):1.jdk改为1.8版本2.如果不想改jdk版本,可在pom.xml中添加以下依赖<dependency> <groupId>javax.annotation</groupId>...
2019-11-21 12:32:15
2821
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人