自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(3)
  • 收藏
  • 关注

原创 JDK锁的基础--AQS实现原理(三)

本文主要来分析一下AQS共享模式锁的获取和释放,AQS其实只是一个框架,它主要提供了一个int类型的state字段,子类继承时用于存储子类的状态,并且提供了一个等待队列以及维护等待队列的方法。至于如何使用这个状态值和等待队列,就需要子类根据自己的需求来实现了。以Semaphore类为例,Semaphore允许多个线程同时获得信号量先来看一下Semaphore的接口: //Semaphore

2018-04-11 13:27:37 1227 1

原创 JDK锁的基础--AQS实现原理(二)

上文介绍了AQS的一些基础知识,包括CLH锁的原理和AQS的一些数据结构,这篇文章中我们来分析一下AQS的方法。AQS是一个抽象类,定义了几个模板方法交给子类去实现,分别是:protected boolean tryAcquire(int arg) protected boolean tryRelease(int arg)protected int tryAcquireShared(int a

2018-04-09 21:39:04 935

原创 JDK锁的基础--AQS实现原理(一)

AQS全称是AbstractQueuedSynchronizer,是jdk中用来实现锁的基础框架,比如ReentrantLock、ReadWriteLock以及Condition的实现和AQS密切相关。说到AQS,等来介绍一下CLH锁,CLH锁是用来实现自旋锁的一种方式,其大概原理是用一个队列把等待锁的线程保存起来,自旋等待。但是CLH比较特别的地方在于,在某种程度上,每个节点的行为是由其前驱节点的

2018-04-09 16:08:20 1950 2

空空如也

空空如也

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

TA关注的人

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