面试干货9——synchronized的底层原理

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


推荐:在准备面试的同学可以看看这个系列

        面试干货1——请你说说Java类的加载过程

        面试干货2——你对Java GC垃圾回收有了解吗?

        面试干货3——基于JDK1.8的HashMap(与Hashtable的区别、数据结构、内存泄漏…)

        面试干货4——你对Java类加载器(自定义类加载器)有了解吗?

        面试干货5——请详细说说JVM内存结构(堆、栈、常量池)

        面试干货6——输入网址按下回车后发生了什么?三次握手与四次挥手原来如此简单!

        面试干货7——刁钻面试官:关于redis,你都了解什么?

        面试干货8——面试官:可以聊聊有关数据库的优化吗?

        面试干货9——synchronized的底层原理


        在多线程并发编程中,synchronized大家肯定都并不陌生,但我听到过很多声音,说synchronized效率很低,性能很差,诸如此类,但又听过不少说后来Java已经对synchroized优化了,基本的并发用它都是能够满足的,但具体Java做了什么优化,synchroized到底是怎么实现的,到底是如何工作的,我却一概不知,今天我怀着对并发编程的恐惧以及对底层实现的渴望,深度学习并总结了一下所学内容。

一、synchronized的用法

        synchronized是Java内置关键字,其作用是达到同步的效果,其关键字只能作用与方法(静态、非静态)与代码块,不可作用于变量
同步代码块:

public void test() {
   
   
    synchronized(this
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值