【面试官】你先说说synchronized的实现原理
- 面试官:知道可重入锁有哪些吗?
- 面试官:你先说说synchronized的实现原理?
- 面试官:那synchronized有什么缺点?
- 面试官:为什么上下文切换要保存当前线程状态?
- 面试官:可以怎么解决synchronized资源消耗吗?
- 面试官:那轻量级锁没有缺点吗?
- 👉以【面试官面试】形式覆盖Java程序员所需掌握的Java核心知识、面试重点
- 📚本期是《Java系列》,其他系列博客请订阅专栏《Java Offer训练营》
- ❤创作不易,不妨点赞、收藏、关注支持一下
文章目录
- 可重入锁
- synchronized实现原理
- synchronized的缺点
- 保存当前线程状态
- 解决synchronized资源消耗
- 轻量级锁缺点
1. 可重入锁
面试官:知道可重入锁有哪些吗?
知道的面试官。可重入意味着获取锁的粒度是线程而不是调用,我了解的主要有ReentrantLock、sychronized都是可重入锁。
2. synchronized实现原理
面试官:你先说说synchronized的实现原理?
好的,synchronized的实现是基于monitor的。
是这样,任何对象都有一个monitor与之关联,当monitor被持有后,对象就会处于锁定状态。
而在同步代码块的开始位置,在编译期间会被插入monitor'enter指令。
当线程执行到monitorenter指令时,就会尝试获取的所有权,获取
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
Java Offer训练营 文章被收录于专栏
👉覆盖Java程序员所需掌握的Java核心知识、面试重点 👉成体系知识帮你在后端进阶,每一道面试官问答助你怒怼大厂面试官,收获大厂offer 👉《Java Offer训练营》包含Java系列、Redis系列、MySQL系列、Kafka系列、ZooKeeper系列、JVM系列、多线程系列等等 👉花费大量精力去制作本专栏,创作不易,各位的支持就是我创作的最大动力