面试真题

Java · 中等 · 阿里巴巴

Synchronized 和 Lock 有哪些理论上的理解?本质区别是什么?

中等 Java 🎤 阿里巴巴
参考答案
结论:Synchronized是JVM内置关键字锁,Lock是API层面锁。本质区别:1.实现:Synchronized基于monitor对象,自动获取释放;Lock基于AQS队列,需手动unlock;2.功能:Lock支持可中断、超时、公平多选、多条件;Synchronized不可中断、非公平、单一条件;3.性能:优化后接近,Lock更灵活;4.释放:Synchronized异常自动释放,Lock须在finally释放。原理:Synchronized通过对象头mark word关联monitor;Lock用volatile state和CAS实现。理论理解:前者语言级同步,后者并发包工具。
题目整理自公开面经,答案由校招宝自研生成,仅供参考