可重入读写锁分析

ReentrantReadWriteLock是基于读写优化的锁,针对ReentrantLock独占带来性能的问题,使用ReenttrantLock无论是写写线程、读读线程、读写线程之间的工作都互斥,同时只有一个线程进入同步区域,然很大多数场景不需要读读互斥的场景。

1、构造函数有俩种实现方式一种的公平锁,另外一种是非公平锁实现。默认是非公平锁来
实现。

public ReentrantReadWriteLock(boolean var1) {
        this.sync = (ReentrantReadWriteLock.Sync)(var1 ? new ReentrantReadWriteLock.FairSync() : new ReentrantReadWriteLock.NonfairSync());
        this.readerLock = new ReentrantReadWriteLock.ReadLock(this);
        this.writerLock = new ReentrantReadWriteLock.WriteLock(this);
    }

    public ReentrantReadWriteLock.WriteLock writeLock() {
        return this.writerLock;
    }

    public ReentrantReadWriteLock.ReadLock readLock() {
        return this.readerLock;
    }

你可能感兴趣的:(JUC包下源码分析)