synchronized底层原理
推荐:在准备面试的同学可以看看这个系列
面试干货3——基于JDK1.8的HashMap(与Hashtable的区别、数据结构、内存泄漏…)
面试干货4——你对Java类加载器(自定义类加载器)有了解吗?
面试干货6——输入网址按下回车后发生了什么?三次握手与四次挥手原来如此简单!
在多线程并发编程中,synchronized大家肯定都并不陌生,但我听到过很多声音,说synchronized效率很低,性能很差,诸如此类,但又听过不少说后来Java已经对synchroized优化了,基本的并发用它都是能够满足的,但具体Java做了什么优化,synchroized到底是怎么实现的,到底是如何工作的,我却一概不知,今天我怀着对并发编程的恐惧以及对底层实现的渴望,深度学习并总结了一下所学内容。
一、synchronized的用法
synchronized是Java内置关键字,其作用是达到同步的效果,其关键字只能作用与方法(静态、非静态)与代码块,不可作用于变量
同步代码块:
public void test() {
synchronized(this

本文详细介绍了synchronized的用法、对象内存布局以及JDK1.6之后的优化策略,包括偏向锁、轻量级锁和重量级锁。通过分析,揭示了synchronized如何保证内存语义,提升并发性能,并讨论了其在不同并发场景下的适用性。
最低0.47元/天 解锁文章
2690

被折叠的 条评论
为什么被折叠?



