- 博客(4)
- 收藏
- 关注
原创 全局拦截方法
logger.info("当前用户信息:{}", user);* @return 需要放行:true, 否则:false。//路径匹配器,支持通配符,可以匹配通配符。//3.如果不需要处理,则直接放行。//2.判断本次请求是否需要处理。* 路径匹配,检查本次请求是否需要放行。//1.获取本次请求的uri。//定义不需要处理的请求路径。//4.判断登录状态。
2024-08-12 14:09:14
340
原创 AQS源码详解之--CountDownLatch
代码都是套路,先分析套路:AQS 里面的 state 是一个整数值,这边用一个 int count 参数其实初始化就是设置了这个值,所有调用了 await 方法的等待线程会挂起,然后有其他一些线程会做 state = state - 1 操作,当 state 减到 0 的同时,那个将 state 减为 0 的线程会负责唤醒 所有调用了 await 方法的线程。上,只有当条件满足的时候(startSignal.countDown()),它们才能同时通过这个栅栏,目的是让所有的线程站在一个起跑线上。
2024-04-29 13:52:40
617
1
原创 AQS锁实现源码解析
最后 来总结下 :简单来说,ReentrantLock内部是运用了AQS来实现的 AQS内部是怎么实现的呢?三个东西:1.线程的阻塞和解除阻塞,2.state,3.阻塞队列实现.线程的阻塞和解除阻塞:AQS 中采用了 LockSupport.park(thread) 来挂起线程,用 unpark 来唤醒线程。state:锁状态值:0:无锁,其余数字有锁,大于1则说明重入。
2024-04-29 13:48:53
809
1
原创 MySQL中我们应该如何选择Float,Double,Decimal?
理论上的东西永远比不上实践,应用场景大于一切理论。选择float或者double或者decimal有时候也要看场景,比如我们可以用double存储一个小商铺的季度营业额(几千万),单独用double存储的时候没有问题,当多个季度,多个年份算总3年内的营业额是,就会出现问题,再也算不出一个准确的答案。所以,如果考虑情况没那么有把握的情况下,推荐使用decimal,最后,也可以通过其他手段避开这些问题,比如存储商品价格可以使用 乘于100的形式存储,展示价格的时候再除于100。
2023-10-10 17:40:59
1031
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅