
java
文章平均质量分 71
HeyZoeHey
这个作者很懒,什么都没留下…
展开
-
MybatisPlus自动生成代码
【代码】MybatisPlus自动生成代码。原创 2025-01-06 11:00:00 · 159 阅读 · 0 评论 -
ThreadLocal理解
个人理解:以Thread的角度来看,使用了一个map用来存储这个线程中的对象,key为ThreadLocal对象,value为实际想存储的对象。也就是说,一个线程可以存多个对象,通过不同的ThreadLocal对象进行区分实际存储的对象。以ThreadLocal的角度来看,ThreadLocal变量本身不存数据,只是提供了get(), set()方法去操作实际的数据。原创 2024-08-29 21:55:51 · 853 阅读 · 0 评论 -
Java8函数式编程阅读
附上原文档。原创 2024-08-03 15:13:08 · 1068 阅读 · 0 评论 -
ScheduledThreadPoolExecutor代码阅读
定时任务中的定时是通过take队列中任务时,根据delay进行awaitNanos(delay)控制的,通过leader控制每次只能有一个线程进行awaitNanos,其他线程执行wait,当awaitNanos结束后,会执行signal,释放wait进程。队列使用的是内部类类型的一个队列,内部通过数组存任务,size存任务数量,数组内部使用推排序来实现下一次take时,取的是时间最近的任务。原创 2024-07-12 16:42:28 · 928 阅读 · 0 评论 -
ReentrantLock与ReentrantReadWriteLock代码阅读
根据上述介绍,如果是公平锁,则判断是否有线程已经在等待了,若有返回true,若是非公平锁,则判断等待的队列中是否在以独占的形式等待,若是则返回true。从代码中可以看出,获取独占锁时,会判断当前线程是否是占有独占锁的那个线程,如果是,则更新 state (AQS中的属性),所以此操作保证了锁的可重入。从此看出,如果已经有线程获取了独占锁,目前又有线程来获取共享锁,如果这两个线程不一致,则会获取锁失败,即同一线程,可以先获取独占锁,可重入共享锁。所以,如果由线程正在独占模式下等待,则不支持你直接获取共享锁。原创 2024-06-27 16:27:11 · 992 阅读 · 0 评论 -
AQS代码理解
上述是最简单的流程,假设第二个if条件为true,for循环中处理的事情为:从tail往前找,直至到node,将这个过程中找到的最后一个满足等待状态原创 2024-06-25 17:02:24 · 989 阅读 · 0 评论 -
Druid连接池的connectionErrorRetryAttempts、 timeBetweenConnectErrorMillis、breakAfterAcquireFailure参数使用
Druid连接池的connectionErrorRetryAttempts、 timeBetweenConnectErrorMillis、breakAfterAcquireFailure参数使用原创 2023-05-08 19:48:55 · 2597 阅读 · 0 评论 -
云E办(SpringBoot+Vue)
[]原创 2021-10-09 22:25:50 · 2207 阅读 · 0 评论 -
连通网络的最少操作次数
已知有n个节点,和m条连接两个节点的线条。需要移动几条线使得所有的节点通过线条可以达到其他的节点?若给出的图是一个极大连通图,则不需要进行任何操作。反之,表示当前的图存在不止一个连通子图。如果有多余的线条,则可以将几个子图进行连接。需要移动的线条数则为连通子图 的个数-1。什么时候有多余的线条?对于一个带有n个节点的图,一个最简单的极大连通子图需要n-1条线即可完成,所以给的已知线条数<n-1,则不可能成为一个极大连通图。所以可以转化为求连通子图的个数。有两种方法:图的深度优先搜索遍原创 2021-01-24 23:08:55 · 4641 阅读 · 0 评论