谈谈synchronized与ReentrantLock的区别?
1. 底层实现上来说:**
synchronized: [synchronized 是JVM层面的锁,是Java关键字.通过monitorenter来加锁,monitorexit来解锁。wait/notify方法使用在synchronized所修饰的代码块中,synchronized 的实现涉及到锁的升级,具体为无锁–》偏向锁–》轻量级锁(CAS)–》向OS(操作系统)申请重量级锁]
ReentrantLock:【实现则是通过利用CAS自旋机制保证线程操作的原子性和volatile保证数据可见性以实现锁的功
原创
2022-05-15 15:10:03 ·
173 阅读 ·
0 评论