自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 红黑树插入、删除结构调整(附JDK10 TreeMap源码注释)

红黑树的5个特性 1、 每个节点要么是红色,要么是黑色; 2、 根节点为黑色; 3、 所有叶节点(NIL节点)都是黑色; 4、 每个红色节点的子节点一定是黑色; 5、 从任一节点到其子树中的每个叶子节点的路径都包含相同数量的黑色节点。 红黑树插入/删除分为两步:第一步,像二叉排序树的插入/删除一样进行查找、插入/删除;第二步,通过重新着色和旋转调整结构使整个树满足红黑树的状态 插入节点 为了使插入...

2019-08-08 15:37:07 155

原创 Java锁升级、偏向锁、轻量级锁

偏向锁 当锁对象第一次被线程获取时,虚拟机会把对象头的锁状态标志设置为01(即偏向状态),同时,使用CAS操作把获取到这个锁的线程的ID记录在对象头的mark word中。如果这个CAS操作成功,那么,以后持有这个偏向锁的线程在进入这个锁相关的同步块的时候都不需要进行同步,只需要测试对象头的mark word中是否存储着当前线程的ID。若测试成功,则直接进入同步块。若测试失败,则需要测试mark ...

2019-06-13 19:37:17 198

原创 AQS笔记之Condition

Condition接口的一个实现类ConditionObject是AQS的内部类,每个Condition对象都包含一个队列,这个队列是Condition对象实现等待/通知的关键。 与Object的监视器模型(synchronized)中一个对象拥有一个同步队列和等待队列不同的是,J.U.C中AQS拥有一个同步队列和多个等待队列。 await方法 public final void await()...

2019-05-26 23:44:44 968

原创 AQS笔记之共享式获取同步状态

acquireShared方法 public final void acquireShared(int arg) { //tryAcquireShared尝试获取共享式同步状态(需重写) // 负数:表示获取失败 // 零值:表示当前结点获取成功, 但是后继结点不能再获取了 // 正数:表示当前结点获取成功, 并且后继结点同样可以获取...

2019-05-24 21:46:06 407

原创 AQS笔记之独占式获取同步状态

跟着函数调用轨迹走一遍。 acquire方法 public final void acquire(int arg) { if (!tryAcquire(arg) &&//尝试获取同步状态(需重写) acquireQueued(addWaiter(Node.EXCLUSIVE), arg))//获取同步状态失败时执行 ...

2019-05-24 16:14:53 387

原创 AQS笔记之前提知识

AQS(队列同步器)是用来构建锁或其他同步组件的基础框架,它使用了一个int成员变量表示同步状态,并通过内置的FIFO 队列来完成资源获取线程的排队工作。 前提 AQS设计基于模板方法模式,即使用者仅需继承同步器并重写指定方法,再调用同步器提供的模板方法(模板方法会调用使用者重写的方法),即可实现自定义同步组件。 重写AQS指定方法,需使用AQS提供的以下3个方法访问或修改同步状态: ge...

2019-05-24 14:11:55 150

原创 关于ReentrantLock中公平锁与非公平锁的一点理解

公平锁 公平锁的主要函数调用轨迹: ReentrantLock类:lock() ReentrantLock类的静态内部类Sync(继承自AbstractQueuedSynchronizer类):acquire(int arg) FairSync类:tryAcquire(int acquires) 非公平锁 公平锁的主要函数调用轨迹: ReentrantLock类:l...

2019-04-11 22:51:15 389

车辆尾灯设计

a) 设置“左转”和“右转”两只转向按钮、左右两侧两组LED灯(每组4~8个)。灯全灭状态表示车辆正常行驶。 b) 点击一次“左转”(“右转”)按钮时,左(右)侧灯按左(右)循环顺序单只点亮(向左跑动),指示左(右)转弯;再次点击则灯全灭。 c) 当电路处于“左转”状态时,点击“右转”按钮,则电路状态转为“右转”;反之则反。

2015-07-17

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

TA关注的人

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