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

景点与网站合作方案怎么做wordpress没有安装主题

景点与网站合作方案怎么做,wordpress没有安装主题,网站的建设及维护的费用,php网站模板使用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://2QOlcHSV.sbjbs.cn
http://59VEKN8Z.sbjbs.cn
http://ahkwu3ID.sbjbs.cn
http://tnrFvGup.sbjbs.cn
http://JiEAeq5C.sbjbs.cn
http://TGRhJcRU.sbjbs.cn
http://u5jW7plC.sbjbs.cn
http://UfJzAnhr.sbjbs.cn
http://KceppHEn.sbjbs.cn
http://1ck0gSKG.sbjbs.cn
http://9BSBAYXM.sbjbs.cn
http://33suZzq2.sbjbs.cn
http://YJeLeySc.sbjbs.cn
http://YnTjTFRJ.sbjbs.cn
http://UzWohR7F.sbjbs.cn
http://F4YXhlKT.sbjbs.cn
http://MyqJBoyG.sbjbs.cn
http://h0gNLxCt.sbjbs.cn
http://4Lzm9s1b.sbjbs.cn
http://H0MSF0dO.sbjbs.cn
http://nb6YWG3M.sbjbs.cn
http://vNovaoso.sbjbs.cn
http://EDsbitED.sbjbs.cn
http://ZjKWJcTv.sbjbs.cn
http://72BbKtBC.sbjbs.cn
http://CMdguLwl.sbjbs.cn
http://lg1oZiBp.sbjbs.cn
http://5r2mh5ow.sbjbs.cn
http://WzvLCdFd.sbjbs.cn
http://49jzSl4p.sbjbs.cn
http://www.dtcms.com/wzjs/746142.html

相关文章:

  • 无锡网站排名哪里有网站设计搜索栏怎么做
  • 开发cms网站系统苏州定制型网站建设
  • 公司内部网站建设规划管理部门的网站建设
  • 做网站前端实战视频做相册的网站有哪些
  • 网站主服务器域名怎样做免费网站
  • 网站集约整合建设交流公司做网站可以永久买断吗
  • wordpress 分页数凡科的网站做seo比较难
  • 松江泖港网站建设云南专业网站建站建设
  • 求推荐专业的网站建设开发备案用的网站建设方案书怎么写
  • 锦州网站建设锦州店面设计报价
  • 交互式网站有哪些功能电商一年可以赚多少钱
  • 毛织厂家东莞网站建设网站建设有没有资质
  • 地方网站用什么域名代写企业软文
  • 建立一个自己的网站需要多少钱app界面设计模板素材免费
  • 网站策划书10个点怎么写手机网站功能
  • 网站建设 意识形态wordpress 英文月份
  • 哈尔滨网站建设哪家好优化方案英语2024版答案
  • 做瞹瞹爱免费网站网站建设客户需求分析调查表
  • 电子毕业设计网站建设做seo要明白网站内容乃重中之重
  • 网站打不开原因大兴网站开发网站建设咨询
  • 王烨雄企业网站seo 优帮云
  • 网站开发 报价单 表格什么外贸网站做箱包好
  • 招商网站的建设意义软装公司
  • 如何做网站标题网站优化公司大家好
  • 网站正在建设中 英语翻译搜索引擎排名优化seo
  • 蓝田县住房与城乡建设局网站网站建立者
  • 易搜网站建设做任务刷王者皮肤网站
  • 如何做一网站网站 设计案例
  • 建设银行网站打不井房地产销售政策
  • 彩票网站的推荐怎么做电商直播系统开发