/**
* Creates an instance of {@code ReentrantLock} with the
* given fairness policy.
*
* @param fair {@code true} if this lock should use a fair ordering policy
*/publicReentrantLock(boolean fair){
sync = fair ?newFairSync():newNonfairSync();}
/* Lock接口 */publicinterfaceLock{//拿不到锁就一直等,拿到马上返回voidlock();//拿不到锁就一直等,如果等待时收到中断请求,则需要处理InterruptedExceptionvoidlockInterruptibly()throws InterruptedException;//无论拿不拿得到锁,都马上返回.拿到返回true,拿不到返回falsebooleantryLock();//同上,可以自定义等待的时间booleantryLock(long time, TimeUnit unit)throws InterruptedException;//释放锁voidunlock();
Condition newCondition();}
读写锁、共享锁、互斥锁
读写锁其实是一对锁,一个读锁(共享锁)和一个写锁(互斥锁、排他锁)
// Java里的ReadWriteLock接口,它只规定了两个方法,一个返回读锁,一个返回写锁publicinterfaceReadWriteLock{/**
* Returns the lock used for reading.
* 读锁
* @return the lock used for reading
*/
Lock readLock();/**
* Returns the lock used for writing.
* 写锁
* @return the lock used for writing
*/
Lock writeLock();}