Java源码
chcHOPENewDay
确定一个方向,坚持下去!
展开
-
AQS解读
AQS原理AQS独占模式AQS共享模式AQS原理 AQS 核心思想是,如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的工作线程,并且将共享资源设置为锁定状态。如果被请求的共享资源被占用,那么就需要一套线程阻塞等待以及被唤醒时锁分配的机制,这个机制 AQS 是用 CLH 队列锁实现的,即将暂时获取不到锁的线程加入到队列中。 AQS 使用一个 int 成员变量state来表示同步状态,通过内置的 FIFO 队列来完成获取资源线程的排队工作。AQS 使用 CAS 对该同步状态.原创 2020-08-13 16:51:41 · 157 阅读 · 0 评论 -
ReentranLock.lock()实现原理
1. 实现流程ReentrantLock.lock 锁机制内部是委托java.util.concurrent.locks.ReentrantLock.Sync.lock()实现的。java.util.concurrent.locks.ReentrantLock.Sync是抽象类,有java.util.concurrent.locks.ReentrantLock.FairSync和java.ut...原创 2018-08-18 12:56:15 · 758 阅读 · 0 评论 -
ReentranLock.unlock()实现原理
上一篇文章学习记录了ReentrantLock.lock()的实现原理,https://blog.csdn.net/chcHOPENewDay/article/details/81807806 接下来继续学习ReentrantLock.unlock()的实现原理: NonfairSync和FairSync都是直接调用的AQS的release(1)实现的AQS的release()方法如下:...原创 2018-08-18 15:25:01 · 367 阅读 · 0 评论 -
序列化底层原理ObjectOutputStream.writeObject()源码解读:
//java.io.ObjectOutputStream#writeObject public final void writeObject(Object obj) throws IOException { if (enableOverride) {//标志位 writeObjectOverride(obj);//这是一个空方法,用于子类实现重写...原创 2018-09-02 21:05:48 · 1489 阅读 · 0 评论