1.定义
**公平锁:**线程按照进入等待队列的顺序来获得锁,可以用于解决饥饿问题;
**多个条件变量是:**将对象锁粒度细化,即有多个不相干的对象锁;
**2.可中断
:**是指线程在blocked阶段等待锁的时候,可以被其他线程打断,停止等待,可以用于解决死锁的问题(被动的方式);
线程t1的中断语句:
`t1.interrupt();`
3.锁超时
trylock();
1.带参数,等待一段时间;
2.不带参数,获取不到锁马上结束;
4. 公平锁
通过fair参数设置公平锁或不公平锁(默认是非公平锁);
一般不设置公平锁,会降低并发度;
5.条件变量
声明reentrantLock()
static ReentrantLock lock = new ReentrantLock();
创建条件变量
Condition condition1=lock. newCondition();
进入休息室等待(类似于wait()方法)
lock.lock();//先获得锁
condition1.await();
条件变量去唤醒线程(类似于notify()方法)
condition1.signal();
condition1.signalAll();