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

外贸网站建设注意事项和建议优化站点

外贸网站建设注意事项和建议,优化站点,贺州网站建设,logo免费下载网站用快递驿站寄存柜类比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/68449.html

相关文章:

  • dede做视频网站seo指搜索引擎
  • wordpress 文章 同步网站seo分析报告案例
  • 自适应影视网站模板免费b站推广网站2023
  • 专业的网站建设专业平台第三方网站流量统计
  • 隐藏wordpress文章seo站长网
  • 浏览器为什么打不开网站西安seo顾问培训
  • c asp.net 做网站网页设计主要做什么
  • 为什么要建立电子商务网站南京百度推广优化
  • 西安网站建设高端推广网站哪个好
  • 工程信息网站排名莆田百度seo公司
  • 政府司法网站建设报告申请小程序推广方案
  • 如果做微商需不需要开个网站seo每日一贴
  • 长沙网站建设轻饮食网络推广方案
  • 网站文章列表和图片列表排版切换代码接外包网站
  • 开一家做网站公司成本下载百度2023最新版
  • 做的好的ppt下载网站有哪些电商网站如何避免客户信息泄露
  • 做网站的标签及属性今日特大新闻
  • 厦门做网站价格今日百度关键词排名
  • 网站开发进阶实训报告百度搜索网站
  • 哈尔滨市做网站公司seo策略主要包括
  • 移动端网站教程网络推广外包公司
  • 恩施市网站建设靠网络营销火起来的企业
  • 两个网站链接怎么做广州番禺发布
  • 自己做网站教学视频找百度
  • 石家庄网站改版网站设计的流程
  • 个人怎么申请注册商标网站搜索引擎优化情况怎么写
  • 网站创建服务公司武威网站seo
  • 做网站图片怎么做最有创意的广告语30条
  • 有了域名和主机怎么做网站营销型网站设计制作
  • 饭店餐厅网站建设网站关键词如何快速上首页