JUC(一)

1.AQS原理

1.1.概述

1>.AQS全称是 AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架;

2>.特点:

①.用state属性来表示资源的状态(分独占模式和共享模式),子类需要定义如何维护这个状态,控制如何获取锁和释放锁;

  • getState: 获取state状态;
  • setStata: 设置state状态;
  • compareAndSetState: cas机制设置state状态;
  • 独占模式是只有一个线程能够访问资源,而共享模式可以允许多个线程访问资源;

②.提供了基于FIFO(先进先出)的等待队列,类似于Monitor的 EntryList;

③.条件变量来实现等待、唤醒机制,支持多个条件变量,(具体的某个条件变量)类似于Monitor的WaitSet;

3>.子类主要实现这样一些方法(默认抛出UnsupportedOperationException):

tryAcquire
tryRelease
tryAcquireShared
tryReleaseShared
isHeldExclusively

4>.获取锁的姿势

// 尝试获取锁,如果获取锁失败
if (!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值