自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Kafka

broker 一个kafka实例是个broker partition 一个topic下可以有多个分区,一个分区只能对于一个主题,一个patition相当于一个文件,kafka可以保证分区有序。 一个分区最多只能被一个消费组中的一个消费者消费,为了避免悲观锁导致吞吐量下降。这样没有锁竞争,充分发挥了横向的扩展性,吞吐量极高。这也就形成了分布式消费的概念。 一个分区可以有多个副本,生产者只与leader副本交互,follower副本从leader副本拉消息。 副本的集合成为AR,与leader保持一定同步的.

2020-12-25 14:05:08 51

原创 synchronized

synchronized 实现 对象模型总结: 每一个Java类,在被JVM加载的时候,JVM会给这个类创建一个instanceKlass,保存在方法区,用来在JVM层表示该Java类。当我们在Java代码中,使用new创建一个对象的时候,JVM会创建一个instanceOopDesc对象,这个对象中包含了两部分信息,对象头以及元数据。对象头中有一些运行时数据,其中就包括和多线程相关的锁的信息。元数据其实维护的是指针,指向的是对象所属的类的instanceKlass 每一个Java类,在被JVM加载的时候

2020-11-22 23:47:13 107 1

原创 AQS独占锁的释放

Example: ReentrantLock的锁释放 由于锁的释放操作对于公平锁和非公平锁都是一样的, 所以, unlock的逻辑并没有放在 FairSync 或 NonfairSync 里面, 而是直接定义在 ReentrantLock类中: public void unlock() { sync.release(1); } release release方法定义在AQS类中,描述了释放锁的流程 public final boolean release(int arg)

2020-11-22 18:26:21 312

原创 AQS源码 独占锁的获取

内部变量 int state状态 双向链表队列。 Node tail, Node head 持有锁的线程 Thread exclusiveOwnerThrea /** * Head of the wait queue, lazily initialized. Except for * initialization, it is modified only via method setHead. Note: * If head exists, its waitStat

2020-11-22 16:56:38 126

原创 future task 分析

future task 分析 类 实现RunnableFuture 接口, RunnableFuture继承 Runnable 和 Future 状态 0:NEW 初始状态 1:COMPLETING 任务已经执行完(正常或者异常),准备赋值结果 2 :NORMAL 任务已经正常执行完,并已将任务返回值赋值到结果 3: EXCEPTIONAL 任务执行失败,并将异常赋值到结果 4 :CANCELLED 取消 5:INTERRUPTING 准备尝试中断执行任务的线程 6:INTERRUPTED 对执行任务的线程

2020-11-05 18:45:31 119

原创 volatile

从上面我们可以看出,缓存一致协议很好的保证了多处理器间缓存一致性的问题。这样看来,我们并没有使用 volatile 关键字的必要,硬件层本身实现了多处理器间的缓存一致性并且对其上层是透明的。但事实并非如此,处理器除缓存外,计算单元与缓存系统间还隔着本地寄存器和缓冲区,处理器本身完成了计算但并没有及时将新值刷新到缓存的话,缓存一致协议并不会起作用,数据的新值对其它处理器的可见性依然无法得到保证。 ...

2020-10-01 16:52:29 64

空空如也

空空如也

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

TA关注的人

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