- 背景: 并发同步两巨头.后者有兄弟ReentrantReadWriteLock/StampedLock, 前者独生子
- 区别:机制区别:synchronize是jvm解决细节逻辑,可重入,操作的是对象头里的mark word,mark word 里有锁类型(无锁/轻量级锁/偏差锁/分量极锁)和持有锁的线程.jvm优化后,就有了缩分类和锁降级.不偏心锁.jvm保护阻塞线程列表.ReentrantLock:对一个int进行cas操作来获取/开释锁
- 区别:细节区别:前者毋庸手动开释,代码快完结jvm开释.后者要手动开释锁,个别的代码构造是现lock,再try-cache-finally,在finnally里unlock.后者有更多的操作,比方tryLock,不论有无获取胜利,都返回,还能够查问期待队列的列表,条件锁等.后者能够设置是否偏心锁,前者肯定是 非颁布平锁.后者反对打断和超时操作,前者不反对.