AQS是一种锁的机制,是多线程中的队列同步器(重点:是一种机制,队列中存储着排队的线程)
使用CAS保证原子性
AQS可以实现公平锁也可以实现非公平锁
可打断:
线程在等待另一个线程释放锁的过程中,被其它线程打断,不再等待原先期望的锁
可等待:
线程在等待另一个线程释放锁的过程中,设置一个时间参数,从线程start()开始计时,如果超过设置的时间还没获得锁,会默认获得锁失败,执行失败的代码,不会一直等待下去
lock.trylock(2,TimeUnit.SECONDS):设置等待时间为2s
可多条件变量:
首先定义锁对象lock,然后定义锁对象lock的条件c1、c2
c1.await()方法:临时释放锁lock,等待其它进程唤醒c1(调用c1.signal()方法)