在Java多线程中 使用ReentrantLock类也能达到同步的效果
使用Condition实现等待/通知
在使用notify()/notifyAll()进行线程通知 被通知的线程却是由JVM随机选择的 但是使用ReentrantLock结合Condition类可以实现
选择性通知
公平锁与非公平锁:
公平锁表示线程获取锁的顺序是按照线程加锁的顺序来分配的
非公平锁 是一种获取锁的抢占机制 随机获取锁的
.readLock():任何线程都可以读 都可以获得锁 一个线程在读 另一个线程要写 必须获得锁
.writeLock():一个线程获取锁在写 另一个线程要写 必须获取锁 一个线程在写 另一个线程要读 也要获取锁