会员
众包
新闻
博问
闪存
赞助商
Trae
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
半分、笑
博客园
首页
新随笔
联系
订阅
管理
2021年4月5日
Linux 的select、poll、epoll
摘要: select、poll、epoll都是用来监听文件描述符。都是I/O多路复用的机制。I/O多路复用就是通过一种机制,一个进程可以监视多个文件描述符,一旦某个文件描述符就绪(读就绪或写就绪),能够通知程序进行相应的读写操作 select、poll、epoll本质还是同步I/O(I/O多路复用本身就是同
阅读全文
posted @ 2021-04-05 17:18 半分、
阅读(804)
评论(0)
推荐(0)
2021年1月3日
MYSQL三大日志-binlog、redo log、undo log
摘要: 前言 我们都清楚日志是mysql的一个重要组成部分,记录着数据库运行期间各种状态信息。而Mysql日志又分为错误日志、查询日志、慢查询日志、二进制日志(binlog)和事务日志(redo log、undo log)。其中在我们开发中聊的比较多的就是二进制日志(binlog)和事务日志(redo lo
阅读全文
posted @ 2021-01-03 11:25 半分、
阅读(3063)
评论(0)
推荐(2)
2020年10月31日
线程池中的 工作线程如何被回收
摘要: 前言 JDK中的ThreadPoolExecutor线程池相信大家都很熟悉,对于线程池的一些高频面试题,比如有哪些参数,每个参数的含义,什么时候发挥作用,工作流程等问题都能回答上来。而对于一些不是很常见的线程池面试题就显得有点模糊,比如:线程池中线程执行完了一个任务接下来是做什么,是等待还是被收回,
阅读全文
posted @ 2020-10-31 22:36 半分、
阅读(8914)
评论(1)
推荐(0)
2020年9月26日
高频面试题:如何保证缓存与数据库的双写一致性
摘要: 前言 为了解决高并发的流量问题,通常我们都会添加缓存这一层,来扛住大量的读请求。虽然缓存能够帮数据库分担大量的读请求,但是也伴随着一个问题就是缓存中的数据怎么跟数据库中的数据保持一致,又是一个新问题 数据实时性等级 这里我们需要保证缓存和数据库的数据一致性,也可以根据数据所要求的实时性等级去评估,并
阅读全文
posted @ 2020-09-26 17:21 半分、
阅读(1779)
评论(0)
推荐(1)
2020年9月5日
ArrayBlockingQueue LinkedBlockingQueue阻塞队列
摘要: 前言 ArrayBlockingQueue和LinkedBlockingQueue都是JUC包下的阻塞队列,只是实现的方式不同,我们都清楚阻塞队列被运用在线程池中,用来存储要被执行的任务,除了被运用在线程池中,如果有场景需要保证任务被顺序执行,也可以单独的使用到阻塞队列,因为队列具有先入先出(FIF
阅读全文
posted @ 2020-09-05 17:04 半分、
阅读(381)
评论(0)
推荐(1)
2020年8月23日
Spring 为何需要三级缓存解决循环依赖,而不是二级缓存
摘要: 前言 在使用spring框架的日常开发中,bean之间的循环依赖太频繁了,spring已经帮我们去解决循环依赖问题,对我们开发者来说是无感知的,下面具体分析一下spring是如何解决bean之间循环依赖,为什么要使用到三级缓存,而不是二级缓存 bean生命周期 首先大家需要了解一下bean在spri
阅读全文
posted @ 2020-08-23 10:35 半分、
阅读(39165)
评论(33)
推荐(36)
2020年8月9日
ReentrantLock AQS源码
摘要: 前言 之前讲过synchronized关键字在JDK1.7之前是一把重量级的锁,那时JVM还未对synchronized关键字进行优化,所以synchronized会调用操作系统的函数实现加锁和解锁。而在JDK1.7后JVM对其进行优化,synchronized可以通过自旋达到一把轻量级的锁,在JV
阅读全文
posted @ 2020-08-09 18:37 半分、
阅读(408)
评论(0)
推荐(0)
2020年7月26日
JVM 进阶知识
摘要: Java的跨平台性 Java具有跨平台性,无疑是JVM底层翻译出来的汇编指令的不同,Unix和Window系统的汇编指令是不同的,Windows派系采用的是Intel汇编,Unix派系采用的是AT&T汇编。无论在哪个平台上编写的Java文件,编译后的class文件,放在哪个平台上都可以执行,只要下载
阅读全文
posted @ 2020-07-26 20:36 半分、
阅读(413)
评论(4)
推荐(0)
2020年7月19日
mysql 设计规范
摘要: 摘要 在我们的日常研发工作中,数据库表的设计是必不可少的。如何设计数据库表之间的关系也就决定着我们的代码业务如何写。如何设计数据库表也是我们需要掌握的技能之一。表如何设计字段的命名,数据类型,长度,索引的建立等都会对我们的代码开发,性能上带来影响,并且如果一个表毫无规范的去设计,还会被后面接手的程序
阅读全文
posted @ 2020-07-19 18:28 半分、
阅读(348)
评论(0)
推荐(1)
2020年7月12日
MVCC 多版本并发控制
摘要: 引言 MVCC全称为Multiversion concurrency control多版本并发控制,我们清楚Mysql的默认隔离级别是可重复读,而Mysql实现可重复读就是使用的MVCC多版本并发控制,通过每条数据的版本号(也可以叫做事务id)来实现不同事务之间的并发访问,有点类似乐观锁,并不需要对
阅读全文
posted @ 2020-07-12 22:25 半分、
阅读(846)
评论(0)
推荐(0)
下一页
公告
昵称:
半分、
园龄:
5年2个月
粉丝:
33
关注:
0
+加关注
<
2025年7月
>
日
一
二
三
四
五
六
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
随笔分类
JVM(4)
linux(2)
mysql(3)
spring(1)
并发(7)
分布式(2)
缓存(1)
集合(1)
随笔档案
2021年4月(1)
2021年1月(1)
2020年10月(1)
2020年9月(2)
2020年8月(2)
2020年7月(4)
2020年6月(4)
2020年5月(5)
阅读排行榜
1. Spring 为何需要三级缓存解决循环依赖,而不是二级缓存(39165)
2. 线程池中的 工作线程如何被回收(8914)
3. HashMap底层实现原理(8150)
4. synchronize底层实现原理(7958)
5. MYSQL三大日志-binlog、redo log、undo log(3063)
评论排行榜
1. Spring 为何需要三级缓存解决循环依赖,而不是二级缓存(33)
2. JVM 进阶知识(4)
3. 线程池中的 工作线程如何被回收(1)
4. Paxos算法 ZAB协议(1)
5. JVM内存模型(1)
推荐排行榜
1. Spring 为何需要三级缓存解决循环依赖,而不是二级缓存(36)
2. MYSQL三大日志-binlog、redo log、undo log(2)
3. Paxos算法 ZAB协议(2)
4. HashMap底层实现原理(2)
5. JVM内存模型(2)
最新评论
1. Re:Spring 为何需要三级缓存解决循环依赖,而不是二级缓存
三个缓存都很重要,对于代理的时候,如果三级取出放入直接放入一级,这样无法区分那个是已经是成品(属性值都有了,不单单是地址,有值),如果不放入的话,每次取都要重新获取代理,而我们想要的是单例的,不符合,...
--righting
2. Re:Spring 为何需要三级缓存解决循环依赖,而不是二级缓存
@kyaa111 哦哦,看那位层主的答复,上下文应该是,AB循环依赖,且A先进行“实例化、填充、初始化”这个过程。 这样就没问题;反正像递归一样,最早进行实例化的bean的初始化过程肯定最后执行...
--三石啊
3. Re:Spring 为何需要三级缓存解决循环依赖,而不是二级缓存
@皓月兮 当B完成后, A进行初始化的后置处理器(需要代理的那个后置处理器)时会进入那个代理类拿到那份缓存替换掉当前自己的引用, 然后放入二级缓存里 这块不是从二级缓存中拿到A替换掉当前自己的引用吗 ...
--kyaa111
4. Re:Spring 为何需要三级缓存解决循环依赖,而不是二级缓存
@皓月兮 支持 我在代码里将二级缓存相关的代码都注释掉, 三级缓存ObjectFactory获取到的Bean直接存入一级缓存也是可以的, 并不会出现被多次代理的情况. 因为org.springfram...
--kyaa111
5. Re:Spring 为何需要三级缓存解决循环依赖,而不是二级缓存
@三石啊 当B完成后, A进行初始化的后置处理器”,就是说A的初始化还在B之后 这个合理, 填充后才是初始化, A填充的时候需要获取到B, B只有初始完后才会填充进A的属性, 所以A的初始化在B之后...
--kyaa111
点击右上角即可分享