搬运可耻,我爱搬运。 —— 吉尔吉夫斯基
写在前面的总结
- synchronized和ReentrantLock 是 java中锁的两种方式;ReentrantLock 相当于synchronized 的增强版;具有synchronized很多所没有的功能;
- ReadWriteLock就是读写锁,它是一个接口,ReentrantReadWriteLock实现了这个接口。
synchronized | ReentrantLock | |
---|---|---|
可重入 | √ | √ |
公平锁 | × | √ |
可中断 | × | 可设置为是否公平 |
读写锁 | × | √ |
绑定多个条件变量 | × | √ |
两者性能比较:竞争不激烈时,两者相似;竞争激烈时, ReentrantLock >> synchronized.