自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 Redi 持久化,主从同步,哨兵

Redis持久化 redis持久化,整体来说是分为两种: RDB和AOF,即时间快照和文件追加指令的方式.在redis4.0版本及以后推出了混合持久化的方式,即结合了RDB和AOF两种持久化方式的优点推出的一种新的持久化的方式. RDB: 按照配置的某种规则(例如 save 3 60 即60秒内有三次更新操作,就持久化到硬盘),以一定的时间频率,把当前内存中数据保存到硬盘中的文件,默认的文件名dump.rdb,此操作是通过fork一个子进程来进行的,可以通过配置文件中的dbfileName指定,rbd文

2021-07-28 17:04:29 121

原创 ConcurrentHashMap 存储以及扩容的实现原理

总结 众所周知 ConcurrentHashMap 是线程安全的,但是在实现上,它摒弃了1.7分段锁的机制,而是采用了CAS+自旋的无锁编程的方式实现的,在设计上,扩容的时候 利用多线程的并发能力,采用多线程协助扩容的方式实现的,在容器的数量的统计上,为了避免线程安全问题和高并发下过多的自旋,没有采用单一的size变量进行统计,而是采用了baseCount+CountCell[],进行分段统计,其中CountCell 采用@CountCell 标注避免了伪共享的问题出现,全程加锁的只有两个地方 1.put操

2021-07-26 19:03:49 709

原创 spring bean 生命周期

Spring bean 生命周期 整个springbean的生命周期 从大的范围来分 分为资源的定位,解析,装载,加载,卸载.定位即为bean的表现形式:1,xml,2.注解,3,文件系统,解析的过程就是把这些表现形式的bean转化为spring统一表现形式的bean(BeanDefintion),装载到容器中(ConcurrentHashMap),然后由spring容器,按照标准的逻辑加载,最后卸载.整个的加载过程如下: spring bean 加载过程 加载过程总结: 三级缓存获取(解决循环依赖),实

2021-01-27 11:15:03 89

原创 java 锁

java 锁的实现原理 java里面的锁,是由三个要素组成,分别是: 资源,线程,容器,整个的实现过程,概括起来很简单,过程如下: 线程开始尝试获取资源,这里的资源 一般指java类里面的成员变量,一般称其为许可证,这里的获取资源的过程,是所有的线程,并发获取,通过cas的方式实现最终只有一个线程获取资源成功.获取资源成功线程,记录当前拥有该资源的线程(基于锁的可重入性,进行设计),没有获取成功的线程加入等待容器(一般特指数组,链表,队列等存放资源的容器),并阻塞等待.成功获取资源的线程,执行完业务逻辑

2021-01-17 18:41:35 120

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除