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

系统管理软件下载seo工资待遇怎么样

系统管理软件下载,seo工资待遇怎么样,响应式网站编码怎吗设置,什么行业需要找网络公司做网站synchronized 锁升级机制详解 Java中的synchronized锁会经历一个从无锁到偏向锁,再到轻量级锁,最后到重量级锁的升级过程,这种优化称为锁升级或锁膨胀。以下是完整的锁升级流程和原理分析: 一、锁状态总览 锁状态存储内容适用场…

synchronized 锁升级机制详解

Java中的synchronized锁会经历一个从无锁到偏向锁,再到轻量级锁,最后到重量级锁的升级过程,这种优化称为锁升级锁膨胀。以下是完整的锁升级流程和原理分析:

一、锁状态总览

锁状态存储内容适用场景优缺点
无锁对象正常状态单线程访问无竞争开销
偏向锁线程ID + Epoch(时间戳)同一线程重复访问加解锁几乎无代价
轻量级锁指向栈中锁记录的指针多线程交替访问自旋消耗CPU
重量级锁指向互斥量(mutex)的指针多线程竞争激烈线程阻塞唤醒开销大

二、锁升级完整流程

第一个线程访问
出现第二个线程
自旋超过阈值/第三个线程
批量重偏向
批量撤销
无锁
偏向锁
轻量级锁
重量级锁
重置偏向锁

三、各阶段详细原理

1. 偏向锁(Biased Locking)

对象头结构

|-------------------------------------------------------|--------------------|
|                  Mark Word (64 bits)                  |       State        |
|-------------------------------------------------------|--------------------|
| unused:25 | identity_hashcode:31 | unused:1 | age:4 | biased_lock:1 | 01 |
|-------------------------------------------------------|--------------------|
|  thread:54 |       epoch:2       | unused:1 | age:4 | biased_lock:1 | 01 |
|-------------------------------------------------------|--------------------|

工作流程

  1. 第一个线程访问时,通过CAS将线程ID写入对象头
  2. 该线程再次进入时只需检查线程ID是否匹配
  3. 出现竞争时(另一个线程尝试获取锁),撤销偏向锁

JVM参数

-XX:+UseBiasedLocking  # 启用偏向锁(JDK15后默认禁用)
-XX:BiasedLockingStartupDelay=4000  # 延迟启用时间(ms)

2. 轻量级锁(Lightweight Lock)

加锁过程

  1. 在当前线程栈帧中创建锁记录(Lock Record)
  2. 拷贝对象头Mark Word到锁记录(Displaced Mark Word)
  3. 用CAS将对象头替换为指向锁记录的指针
  4. 成功则获取锁,失败则自旋或升级

对象头变化

|-------------------------------------------------------|--------------------|
|               Pointer to Lock Record                  |       State        |
|-------------------------------------------------------|--------------------|
|              62 bits                 |      00        |       lightweight |
|-------------------------------------------------------|--------------------|

3. 重量级锁(Heavyweight Lock)

实现原理

  • 依赖操作系统互斥量(mutex)实现
  • 未获取锁的线程进入阻塞状态
  • 通过监视器(Monitor)管理,涉及用户态到内核态的切换

对象头结构

|-------------------------------------------------------|--------------------|
|               Pointer to Heavyweight Monitor          |       State        |
|-------------------------------------------------------|--------------------|
|              62 bits                 |      10        |       heavyweight |
|-------------------------------------------------------|--------------------|

四、关键升级触发条件

升级路径触发条件
无锁 → 偏向锁第一个线程访问同步块
偏向锁 → 轻量级锁第二个线程尝试获取锁(发生竞争)
轻量级锁 → 重量级锁自旋超过阈值(-XX:PreBlockSpin,JDK6后自适应自旋)或第三个线程参与竞争

五、特殊处理机制

1. 批量重偏向(Bulk Rebias)

场景:当一类对象的偏向锁被多个线程访问,但未真正竞争时
行为:JVM会批量修改这些对象的偏向线程ID(epoch值递增)
阈值:默认20次(-XX:BiasedLockingBulkRebiasThreshold

2. 批量撤销(Bulk Revoke)

场景:当一类对象的偏向锁总是发生竞争
行为:JVM会禁用该类的偏向锁功能
阈值:默认40次(-XX:BiasedLockingBulkRevokeThreshold

六、锁升级性能影响

锁状态适用场景性能特点
偏向锁单线程重复访问加解锁几乎无开销(仅1次CAS)
轻量级锁多线程交替访问自旋消耗CPU,但避免线程阻塞
重量级锁高并发竞争线程阻塞/唤醒开销大(微秒级)

七、实战建议

  1. 偏向锁优化

    # 对明确存在竞争的类禁用偏向锁
    -XX:-UseBiasedLocking
    
  2. 自旋优化

    # 开启自适应自旋(默认开启)
    -XX:+UseSpinning
    -XX:PreBlockSpin=10  # 传统自旋次数(JDK6后无效)
    
  3. 监控工具

    # 查看锁竞争情况
    jstack <pid> | grep -A 10 "java.lang.Thread.State"# JFR记录锁事件
    jcmd <pid> JFR.start duration=60s filename=lock.jfr
    

八、与ReentrantLock对比

特性synchronizedReentrantLock
实现机制JVM内置,自动升级Java API实现
灵活性相对固定可中断、定时获取、公平锁等
性能JDK6后优化接近ReentrantLock高竞争下表现更好
锁降级不支持支持(通过ReadWriteLock)

锁升级机制是JVM对synchronized性能优化的核心设计,理解这一过程有助于:

  • 正确评估同步代码性能
  • 合理选择同步方案
  • 针对性优化高并发场景
http://www.dtcms.com/wzjs/67813.html

相关文章:

  • 重庆平台网站建设多少钱镇海seo关键词优化费用
  • 怎么做自己的单页网站百度关键词价格计算
  • 免费做网络推广的网站可靠吗网站建设建站在线建站
  • 仿做网站可以整站下载器吧代做百度首页排名价格
  • 网站优化公司电话制造业中小微企业
  • 网站首页布局设计百度首页推广
  • 深圳建站公司 方网站营销策略有哪些方面
  • 深圳网站建设行业新闻郴州网站建设网络推广渠道
  • 听说福州疫情又严重了超云seo优化
  • 个人怎样免费建网站seo学校培训班
  • 淮北做网站的公司有哪些宁波优化推广找哪家
  • 公司建设网站计入什么分录上海网站建设推广服务
  • 长春建站网站自己如何做网站
  • 长沙制作公园仿竹护栏多少钱一米百度移动seo首选帝搜软件
  • 深圳宝安p2p网站系统的建设网站服务器
  • 国内做网站建设知名的公司企业网站优化
  • wordpress主题模板修改seo智能优化公司
  • wordpress升级方法网页优化包括
  • 网站模板代理球队排名榜实时排名
  • 手机类网站设计定制网站开发
  • 如需郑州网站建设长沙市最新疫情
  • jsp可以做网站吗常州百度推广代理
  • 做美食下载什么网站湖南专业seo推广
  • 邯郸创建网站要多少钱搜索引擎优化的特点
  • 湖南竞网做网站好吗百度人工客服24小时电话
  • 网站建设一般用到的语言郑州网络营销策划
  • 自己怎么建h5商城网站手机seo快速排名
  • 网站建设有几种方案今天最新新闻事件报道
  • 标题seo是什么意思360搜索引擎优化
  • 入门 做网站 书籍地推怎么做最有效