自定义博客皮肤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)
  • 收藏
  • 关注

原创 单例设计模式

单例设计模式 饿汉式单例 饿汉式单例是在类加载的时候就立即初始化,并且创建单例对象。绝对线程安全,在线 程还没出现以前就是实例化了,不可能存在访问安全问题。 优点:没有加任何的锁、执行效率比较高,在用户体验上来说,比懒汉式更好,绝对线程安全,在线程还没出现以前就是实例化了,不可能存在访问安全问题 缺点:类加载的时候就初始化,不管用与不用都占着空间,浪费了内存,有可能占着茅 坑不拉屎。 普通饿汉式单例 public class HungrySingleton { private static fi

2020-12-19 10:47:26 65 1

原创 ReentrantLock 的源码分析

ReentrantLock 的源码分析 ReentrantLock 的时序图 ReentrantLock.lock() 这个是 reentrantLock 获取锁的入口 public void lock() { sync.lock(); } ​ sync 实际上是一个抽象的静态内部类,它继承了 AQS 来实现重入锁的逻辑,而 AQS 是一个同步队列,它能够实现线程的阻塞以及唤醒,但它并不具备业务功能。 sync的实现类 所以在不同的同步场景中,会继承 AQS 来实现对应场景的功能 Sync 有两个具体

2020-12-22 21:27:57 72

原创 2020-12-21

synchronized 锁的升级 ​ 在 synchronized 中,锁存在四种状态 分别是:无锁、偏向锁、轻量级锁、重量级锁; 锁的状态 根据竞争激烈的程度从低到高不断升级。 偏向锁 ​ 偏向锁的目的是在某个线程获得锁之后,消除这个线程锁重入(CAS)的开销,偏向锁则是在只有一个线程执行同步块时进 一步提高性能。 轻量级锁 ​ 轻量级锁所适应的场景是线程交替执行同步块的情况,如果存在同一时间访问同一锁的情况,就会导致轻量级锁膨胀 为重量级锁。 轻量级锁是为了在线程交替执行同步块时提高性能。 重

2020-12-21 21:59:50 66

原创 ratf选举算法

raft选举算法 Nacos集群采用raft算法来实现 raft算法演示地址:http://thesecretlivesofdata.com/raft/ 节点角色 Leader:负责接收客户端的请求,与Follower保持这heartBeat的联系; Candidate:用于选举Leader的一种角色 Follower:负责响应来自Leader或者Candidate的请求,把请求到Follower的事务转发给Leader; 发生选举的时机 服务启动的时候 leader挂了的时候 选举过程 所有节点

2020-11-05 09:01:19 925

空空如也

空空如也

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

TA关注的人

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