Java并发编程之显示锁ReentrantLock和ReadWriteLock读写锁
在Java5.0之前,只有synchronized(内置锁)和volatile.Java5.0后引入了显示锁ReentrantLock.
ReentrantLock概况
ReentrantLock是可重入的锁,它不同于内置锁,它在每次使用都需要显示的加锁和解锁,而且提供了更高级的特性:公平锁,定时锁,有条件锁,可轮询锁,可中断锁.可以有效避免死锁的活跃性问题.ReentrantLock实现了
Lock接口:
publicinterfaceLock{ //阻塞直到获得锁或者中断 voidlock();
//阻塞直到获得锁或者中断抛异常 voidlockInterruptibly()throwsInterruptedException;
//只有锁可用时才获得,否则直接返回 booleantryLock();
//只有锁在指定时间内可用时才获得,否则直接返回,中断时抛异常 booleantryLock(longtime,TimeUnitunit)throwsInterruptedException;
voidunlock();
//返回一个绑定在这个锁上的条件 ConditionnewCondition(); }