近况

zookeeper学习之zab协议

2018-09-10

zookeeper采用一种称为ZooKeeper Atomic Broadcast(ZAB,ZooKeeper原子广播协议)的协议作为其数据一致性的核心算法。 接下来我们就介绍一下zab协议 zab zab...


2PC 与 3PC

2018-09-07

2PC 二阶段提交协议 阶段一: 提交事务请求 1. 先向所有的人发送事务请求,询问是否可以提交事务 2. 参与节点执行, 并写入Undo Redo信息 3. 各个参与节点如果成...


拜占庭将军问题与Raft算法

2018-09-07

拜占庭将军问题 莱斯利·兰波特在其论文中描述了如下问题: 一组拜占庭将军分别各率领一支军队共同围困一座城市。为了简化问题,将各支军队的行动策略限定为进...


ThreadLocalMap 源码解析

2018-09-05

什么是ThreadLocal? ThreadLocal类顾名思义可以理解为线程本地变量。也就是说如果定义了一个ThreadLocal,每个线程往这个ThreadLocal中读写是线程隔离,互...


AQS acquire方法解析

2018-08-09

AQS(AbstractQueuedSynchronized)是java.util.concurrent.locks的重要组成部分,我们现在来分析一下它的实现 定义 private transient volanitialized. Modi...


线程池

2018-08-08

1 线程池的技术背景 在面向对象编程中, 创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其他更多资源,所以提高服务程序效率的一个手段就...


JVM内存分配策略

2018-08-06

1.对象优先在Eden分配 当Eden区没有足够的空间进行分配的时候就要做一个Minor GC 2.大对象直接进入老年代 所谓大对象就是指,需要大量连续内存空间的Java对象,...


CMS垃圾收集器

2018-08-06

回顾一下CMS的四个主要阶段,以及各个阶段的工作内容.下图展示了CMS各个阶段可以标记的对象,用不同颜色区分 1.Init-mark初始标记(STW),该阶段进行可达性分析,...