AQS对资源的共享方式?
AQS定义两种资源共享方式:
1. Exclusive(独占):只有一个线程能执行,如ReentrantLock。又可分为公平锁和非公平锁:
公平锁:按照线程在队列中的排队顺序,先到者先拿到锁
非公平锁:当线程要获取锁时,无视队列顺序直接去抢锁,谁抢到就是谁的
2. Share(共享):多个线程可同时执行,如Semaphore/CountDownLatch。Semaphore、CountDownLatch、 CyclicBarrier、ReadWriteLock 我们都会在后面讲到。
ReentrantReadWriteLock可以看成是组合式,因为ReentrantReadWriteLock也就是读写锁允许多个线程同时对某一资源进行读。不同的自定义同步器争用共享资源的方式也不同。自定义同步器在实现时只需要实现共享资源state的获取与释放方式即可,至于具体线程等待队列的维护(如获取资源失败入队/唤醒出队等),AQS已经在顶层实现好了。

猜你喜欢LIKE
相关推荐HOT
更多>>
c++和java的区别是什么?
c++和java的区别是什么?其实从发展的角度来看,java就是从c++语言衍生出来的。也正因如此,二者之间存在着一些必然的联系。下面从java的角度来...详情>>
2022-12-08 14:10:00
javaee是前端还是后端
javaee是前端还是后端?通常情况下javaee是指后端,为什么这么说,是因为javaee的有些方式也属于前端的范畴,就好比jsp的一些东西就是属于前端的...详情>>
2022-11-21 11:57:00
volatile 修饰符的有过什么实践?
简单的说,就是当你写一个 volatile 变量之前,Java 内存模型会插入一个写屏障(write barrier),读一个 volatile 变量之前,会插入一个读屏障(r...详情>>
2022-11-19 15:33:00
AQS对资源的共享方式?
自定义同步器在实现时只需要实现共享资源state的获取与释放方式即可,至于具体线程等待队列的维护(如获取资源失败入队/唤醒出队等),AQS已经在...详情>>
2022-10-24 17:14:00
说一下 HashSet的实现原理?
HashSet中add方法调用的是底层HashMap中的put方法,put方法要判断插入值是否存在,而HashSet的add方法,首先判断元素是否存在,如果存在则插入...详情>>
2022-10-13 16:25:00Java丝瓜视频苹果app下载 问答更多>>
新java前端和后端哪个容易学?
新java开发工程师需要学什么?
新java初学者如何入门?
新java的发展和前景如何?
新java编程入门先学什么?难不难
新java丝瓜视频苹果app下载 出来工资大概多少?
新java工程师是做什么的?
Java面试题库 更多>>
什么是线程的上下文切换?
如何撤销已经推送(push)到远端仓库的提交(commit)信息?
你了解哪些加密算法?
final在Java中有什么作用?
如果系统响应变慢,你会怎么排查?
Java中都有哪些引用类型
开班信息
北京校区
- 北京校区
- 大连校区
- 广州校区
- 成都校区
- 杭州校区
- 长沙校区
- 合肥校区
- 南京校区
- 上海校区
- 深圳校区
- 武汉校区
- 郑州校区
- 西安校区
- 青岛校区
- 重庆校区
- 太原校区
- 沈阳校区
- 北京校区
- 大连校区
- 广州校区
- 成都校区
- 杭州校区
- 长沙校区
- 合肥校区
- 南京校区
- 上海校区
- 深圳校区
- 武汉校区
- 郑州校区
- 西安校区
- 青岛校区
- 重庆校区
- 太原校区
- 沈阳校区
