
java
文章平均质量分 62
一些自己的理解
ayugudu
兴趣使然
展开
-
git 切换远程关联分支
git 切换远程关联分支原创 2022-08-15 16:24:07 · 973 阅读 · 0 评论 -
ReentrantLock与AQS源码解析
AQS是队列同步器,是提供同步锁的一种模板框架,也是lock锁实现的底层机制。Aqs 是通过int 变量state来表示加锁状态,通过fifo同步队列来管理线程同步状态。流程:当前线程获取同步状态失败时,同步器会将线程以及等待信息构造成一个节点,加入同步队列中,同时阻塞当前线程,当同步状态释放时,会把首节点中的线程唤醒,再次尝试获取同步状态。AQS是经典采用了模板方法设计模式的,主要提供了一下五个魔版方法供我们重写加锁/解锁逻辑。以下源码基于非公平锁进行解析同步队列器node状态描述:lock方法表示非原创 2022-06-05 13:35:08 · 256 阅读 · 2 评论 -
RABC 权限拦截设置
1 RABC 是什么?rabc 是一种用于设计权限的一种思想,流程图如下2 硬编码实现的思想RABC 主要有user 用户表,role角色表,permission权限表,以及role-permission和user-role的中间关联表,但是实际上对于一般的需求,我们可以只使用user用户表, 里面存储字段标识 角色信息,然后在代码层面进行编码方式 使用enum枚举出所有角色表,使用 权限注解标识方法,将权限注解与方法进行一个绑定,其中权限里面包括(角色)信息,通过拦截器进行拦截权限进行筛选。原创 2022-03-28 18:18:39 · 8886 阅读 · 0 评论 -
Java 死锁 哲学家就餐问题解决
文章目录1 死锁2 定位死锁3 哲学家就餐问题多锁只有一个对象锁的话,程序的并发度很低(加synchornized 串行执行程序了)我们可以准备多个对象锁,将锁的粒度细分好处 增强并发度坏处 如果一个线程需要同时获得多把锁,就容易发生死锁1 死锁一个线程需要同时获取多把锁,这时容易发生死锁t1 线程 获得A对象锁,接下来想获取B对象的锁t2 线程获得B对象锁,接下来向获取A对象锁// 线程1 需要获取多把锁 new Thread(()->{原创 2022-01-10 16:59:22 · 419 阅读 · 0 评论 -
一文快速了解Java IO 模式
java IO模式1.1 同步,异步,阻塞,非阻塞首先了解一下同步,异步,阻塞,非阻塞同步和异步关注的是**消息通信机制**同步同步,就是在发出一个调用时,在没有得到结果之前,该调用就不返回。但是一旦调用返回,就得到返回值了。异步异步则是相反,*调用*在发出之后,这个调用就直接返回了,所以没有返回结果阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态.阻塞调用是指调用结果返回之前,当前线程会被挂起,调用线程只有在得到结果后才会返回非阻塞调用在不能得到结原创 2022-01-06 17:46:03 · 470 阅读 · 0 评论