看到一篇文章写的比较好,易懂。自认为不可能写的更好了,但为了弥补知识盲区,引用一下这篇关于公平锁和非公平锁的地址

一张图读懂非公平锁与公平锁

概括来说:公平锁的意思就是,当已有资源释放了锁,则下一个获得锁的线程是线程队列最前面的一个。
非公平锁则不能保证,释放锁的时候刚好来了一个线程那么这个线程就会获得到锁,反而线程队列中等待的线程没有获得到锁,这种体现了非公平的机制故称作非公平锁。

默认的ReentrantLock和ReadWriteLock都是非公平锁。ReentrantLock可以使用带参数的构造方法创建公平锁,需要传入true
如下是构造方法的源码截图
公平锁和非公平锁_公平锁