当前位置: 首页 > news >正文

创新的中山网站建设北京市装修公司前10名

创新的中山网站建设,北京市装修公司前10名,提升网站浏览量,网站建设培训哪个好Java 说一下 synchronized 底层实现原理? synchronized 是 Java 中用于实现同步的关键字,它保证了多个线程对共享资源的互斥访问。底层实现涉及到对象头的 Mark Word 和锁升级过程。 synchronized 可以用于方法上或代码块上,分别对应于方法…

Java 说一下 synchronized 底层实现原理?

synchronized 是 Java 中用于实现同步的关键字,它保证了多个线程对共享资源的互斥访问。底层实现涉及到对象头的 Mark Word 和锁升级过程。

synchronized 可以用于方法上或代码块上,分别对应于方法同步和对象同步。下面分别介绍这两种情况的底层实现原理。

对象同步(代码块同步)

在对象同步的情况下,synchronized 关键字可以修饰代码块,如下:

public class SynchronizedExample {private Object lock = new Object();public void exampleMethod() {synchronized (lock) {// 同步的代码块}}
}

底层实现原理:

  1. 进入同步块时,线程首先会尝试获取对象锁。
  2. 如果对象的 Mark Word 中的锁标志位为可用状态(偏向锁或无锁状态),线程将尝试使用 CAS 操作来将锁标志位设置为锁定状态,表示获取锁成功。
  3. 如果对象的 Mark Word 中的锁标志位为锁定状态,表示已经有其他线程持有了锁,线程将进入自旋等待或阻塞等待状态,直到锁可用。

方法同步

在方法同步的情况下,synchronized 关键字可以修饰整个方法,如下:

public class SynchronizedExample {private Object lock = new Object();public synchronized void exampleMethod() {// 同步的方法}
}

底层实现原理:

  1. 进入同步方法时,线程会尝试获取方法所在对象的锁,其实质和对象同步一样。
  2. 如果对象的锁标志位为可用状态,线程将尝试使用 CAS 操作将锁标志位设置为锁定状态。
  3. 如果对象的锁标志位为锁定状态,表示已经有其他线程持有了锁,线程将进入自旋等待或阻塞等待状态,直到锁可用。

需要注意的是,synchronized 关键字保证了互斥访问,但在锁的竞争激烈的情况下,可能导致性能下降。在 Java 6 以后,JVM 对 synchronized 进行了优化,引入了偏向锁、轻量级锁和重量级锁的概念,以提高同步性能。

http://www.yayakq.cn/news/19621/

相关文章:

  • 创建网站的目的wordpress后台修改前段
  • 足球比赛直播雨燕连云港网站关键字优化市场
  • 网站开发公司怎么能接到单子网站开发的话术
  • 某个网站访问慢的原因网站建设比选文件
  • 上海网站搭建平台公司百度知道问答首页
  • 淮南网云小镇房价一键优化
  • 网站域名过期了怎么办在线制作logo图片免费
  • 做网站上的图片如何设定分辨率联通公司做网站吗
  • 阿里云服务器建设网站做漂亮的网站
  • 用asp.net制作一个网站需要多久开发app小程序
  • 支付宝手机网站签约湖南常德文理学院
  • 做网站可能存在的问题全景图网页制作工具
  • 如何做网站推广营销wordpress audaz主题
  • 深圳市盐田区住房和建设局网站前端网站开发一个月多少钱
  • 软件公司网站素材十堰做网站最专业的公司
  • 网站备案的流程小程序订货系统
  • 网站制作说明书网站推广系统方案
  • 江苏科技大学新校区建设网站橙米网站建设
  • 什么是网站被黑h5网站开发技术
  • 买网站平台名字吗医院哪个科室负责网站建设
  • 网站的图形拖拽验证码怎么做的广州注册公司最新流程
  • 莒县住房和城乡规划建设局网站自己搭建域名服务器
  • 做学校网站素材图片大全服装工厂做网站的好处
  • 建设手机网站设计微信php网站开发流程
  • ui网站建设站评价免费做公司网站能在百度上搜索的到
  • 建设一个大型网站需要多少钱做流量的网站
  • 住房和城乡建设部是国家认定网站吗gta5办公室网站正在建设
  • 新增网站和新增接入Wordpress怎么連結mysql
  • 建站之星网站 seo优化建设通破解vip
  • 公司网站如何做的美丽广告公司手机网站模板