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

外贸网站建设注意事项和建议仁茂网络seo

外贸网站建设注意事项和建议,仁茂网络seo,phpstudy 搭建wordpress,做网站的公司深圳用快递驿站寄存柜类比synchronized锁机制 想象你有一个24小时快递驿站,寄存柜就是Java对象,每个寄存柜都有智能锁(对象头里的锁标记),不同使用场景对应不同锁策略: 一、基础操作流程 顾客取件&#xff08…

用快递驿站寄存柜类比synchronized锁机制

想象你有一个24小时快递驿站,寄存柜就是Java对象,每个寄存柜都有智能锁(对象头里的锁标记),不同使用场景对应不同锁策略:


一、基础操作流程

  1. 顾客取件(线程访问)
    • 走到寄存柜前(进入同步代码块)
    • 尝试开锁(通过对象头判断锁状态)
    • 成功:放入/取出快递(执行代码)
    • 失败:根据情况选择等待方式(锁升级)

二、锁状态升级详解(寄存柜智能锁策略)

1. 偏向锁模式(VIP顾客专属)
  • 场景:经常只有老王一个人来取快递
  • 操作
    • 第一次开锁:登记老王指纹(CAS记录线程ID到对象头)
    • 后续开锁:直接指纹验证通过(无需额外操作)
  • 优势:零额外开销
    // 对象头存储结构示例
    | 锁状态 | 线程ID | epoch | 其他 |
    | 偏向锁 | 老王   | 001   | ... |
    
2. 轻量级锁(临时借用密码纸)
  • 场景:偶尔有小张和老王交替取件(无实际竞争)
  • 操作
    1. 生成一次性密码(将对象头复制到线程栈)
    2. 尝试用密码纸开锁(CAS替换对象头为指向栈的指针)
    3. 成功:5秒内自动失效(自旋计数)
    4. 失败:升级为人工柜台处理(重量级锁)
  • 优势:避免叫醒管理员(避免OS线程切换)
    // 栈中存储的锁记录(Lock Record)
    class LockRecord {Object displacedMark; // 原始对象头拷贝Object owner;         // 指向当前对象
    }
    
3. 重量级锁(人工柜台排队)
  • 场景:双11高峰期多人同时取件(高竞争)
  • 操作
    • 触发警报唤醒管理员(OS内核介入)
    • 取号机发放排队号码(EntryList维护阻塞队列)
    • 叫号后凭号码开柜(线程被唤醒后获取锁)
  • 代价:需要支付人工费(系统调用开销大)
    // 对象头指向操作系统级互斥量(mutex)
    | 锁状态      | 互斥量指针          |
    | 重量级锁 | 0x789abc (指向mutex) |
    

三、底层实现关键步骤

1. monitorenter指令执行流程
// 伪代码演示锁获取过程
if (对象处于无锁状态) {if (允许偏向锁 && 当前线程已登记) {直接进入同步块; // 偏向锁生效} else {尝试轻量级锁CAS操作;if (成功) 进入同步块;else 升级锁状态;}
} else {if (当前线程已持有锁) {锁计数器+1; // 可重入实现} else {加入等待队列;挂起线程; // 重量级锁阻塞}
}
2. 内存屏障保障(可见性)
  • 写入屏障:退出同步块时强制刷新变量到主内存
  • 读取屏障:进入同步块时从主内存加载最新值
// 相当于在同步块前后自动添加:
synchronized(obj) {MemoryBarrier(); // 内存屏障// 业务代码MemoryBarrier();
}

四、高频面试扩展点

1. 锁膨胀过程
首次加锁
其他线程访问
自旋失败
释放后
无锁
偏向锁
轻量级锁
重量级锁
2. 锁消除案例
// JIT编译器发现局部StringBuffer不可能被共享
public String createString() {StringBuffer sb = new StringBuffer();synchronized(sb) { // 这个锁会被消除sb.append("hello");}return sb.toString();
}
3. 锁粗化优化
// 连续多次加锁合并为一次
for (int i=0; i<100; i++) {synchronized(obj) { // 合并到循环外部doSomething();}
}

总结记忆卡
synchronized底层是智能锁升级系统:

  1. 单人用→偏向锁(VIP快速通道)
  2. 交替用→轻量锁(密码纸自助)
  3. 抢着用→重量锁(人工柜台排队)
    配合内存屏障保障可见性,通过锁消除/粗化提升性能,实现高效线程安全。
http://www.dtcms.com/wzjs/137179.html

相关文章:

  • 太原做手机网站最新疫情最新情况
  • 无锡网站建设 首选无锡立威云商山东seo优化
  • 网站平台建设规划中企动力做网站推广靠谱吗
  • ui设计哪里培训机构seo案例分析及解析
  • 深圳龙华做网站的朋友圈推广
  • wordpress企业站模板广告优化师
  • 乌鲁木齐网站设计艾滋病多长时间能查出来
  • 网站建设开拓该行业的难点疑网站推广优化的方法
  • 网站控制面板 地址朋友圈广告代理商官网
  • 设计制作一个 个人主页网站美国疫情最新数据消息
  • 海口平台公司站内优化
  • 厦门做网站排名建设网页
  • wordpress可注册地址北京seo关键词排名优化软件
  • 亚马逊一般在哪些网站上做推广站长推广网
  • 个人网站备案可以做项目网站线上销售怎么做推广
  • 深圳做网站排名公司中国目前最好的搜索引擎
  • 小型网站开发西安百度seo代理
  • 珠海企业网站建站谷歌商店下载官方
  • 做竞价网站用什么系统好营销咨询顾问
  • 兰溪好品质高端网站设计哈尔滨网络优化公司有哪些
  • 动态电商网站怎么做谷歌排名推广
  • 上海html5网站建设公司网站制作教程
  • 好看的幼儿园网站模板嘉兴seo优化
  • 网站开发师招聘全国教育培训机构平台
  • 敦煌网站做外贸怎样临沂seo推广
  • 南通教育平台网站建设搜狗收录入口
  • 怎样看网站是什么语言做的网络seo培训
  • 铁路学校都有哪些学校seo推广网络
  • 网站域名 续费百度推广搜索排名
  • 耒阳网站建设新手怎么入行sem