- 博客(10)
- 收藏
- 关注
原创 AQS源码分析
acquireQueued传入当前node,通过不断循环判断,看是否是老二而且能够获得锁,能就返回打断值,看前一个节点是否是-1状态,是就执行等待方法,直到unpark或者打断,返回是否被打断。尝试获取锁,分三类,一类是state为0,用CAS实现第一次锁的获取,并且设置排他主节点,第二类是锁重入,将c+1,第三类就是其他线程抢不到锁,返回false。tryAcquire是尝试获取锁,判断state是否为0和是否是锁重入,是就返回true,不是就返回false接着下面判断。方法返回值是新增的节点。
2023-12-28 20:37:30
365
原创 Apriori代码分析
直到长度之比后者小1为止,也就是rulesFromConseq方法中调用calcConf方法要先调用Hmp1 = aprioriGen(H, m + 1),将1增长为下一个频繁子集(1,2),然后再计算(1,2)--> (3)的置信度,比较,如果大于阈值则加入,进行下一轮。也会有{牛奶,啤酒} --> {尿布, 矿泉水},{牛奶,矿泉水,} --> {啤酒,尿布} 等等可能性。还有 {牛奶} --> {啤酒,尿布,矿泉水}, {啤酒} --> {牛奶,尿布,矿泉水}等等可能性。
2023-12-28 19:27:08
844
1
原创 mybatis-plus中查询出错的一个坑
如果你表命名为order(订单表),那么恭喜你掉入了一个大坑,一定会报数据库查询语法错误,其中FROM order,这个order是关键字,导致sql语法出错。
2023-07-01 23:15:57
360
原创 操作系统的中断-----王道考研操作系统课程
操作系统内核负责对中断信号进行处理,然后打印机开始工作,进程2暂停运行等待I/O完成,换进程3运行。,操作系统的内核会对这个中断信号进行处理,进程2的I/O操作完成,让进程2恢复运行,以完成后续工作。,进程3开始工作,并且输出设备在操作系统的要求下也会。于是操作系统决定进程1的时间片已用完,换进程2运行。的工作,当输出设备I/O结束后,会向设备发出。,操作系统内核负责对中断信号进行处理。),然后操作系统介入开展管理工作。),请求输出,CPU切换为。CPU收到计时部件发出的。
2022-09-14 11:17:15
311
原创 AQS非公平锁实现原理
shouldParkAfterFailedAcquire 执行完毕回到 acquireQueued ,再次 tryAcquire 尝试获取锁,当然这时state 仍为 1,失败。进入 shouldParkAfterFailedAcquire 逻辑,将前驱 node,即 head 的 waitStatus 改为 -1,这次返回 false。如果自己是紧邻着 head(排第二位,这里是head就是指哑元),那么再次 tryAcquire 尝试获取锁,当然这时 state 仍为 1,失败。
2022-09-12 12:19:06
807
原创 SpringCache详解(尚硅谷谷粒商城)
原理:CacheManager(RedisCacheManager) --> Cache(RedisCache) --> Cache负责缓存的读写。常规数据(读多写少,即时性,一致性要求不高的数据),完全可以使用spring-cache, 写模式(只要缓存的数据有过期时间就足够了)缓存穿透:查询一个null数据 解决:缓存空数据:spring.cache.redis.cache-null-values=true。---> 初始化所有缓存 --> 每个缓存决定使用什么配置。Spring-Cache的不足。
2022-09-09 18:59:44
561
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人