第039篇 synchronized 原理:对象头、锁升级与重量级锁
synchronized 这题的分水岭特别清楚:能答出"对象头 Mark Word + monitorenter"的人不少,能讲清"锁升级的四个阶段、偏向锁在 JDK 15 被废弃、以及为什么wait必须在锁内调用"的人很少。面试官问的就是后面这层。理解了升级路径与锁竞争的真实代价,这道题才算拿下来。先把结论放在前面:synchronized的锁信息记录在对象头的 Mark Word 里,字节码层面由monitorenter与monitorexit指令实现,进入时若对象未被锁定则把锁记录写进 Mark Word 并指向一个ObjectMonitor;同一线程重入时用重入计数递增,退出时递减归零才真正释放。 竞争加剧时锁会逐步膨胀:无竞争时靠 Mark Word 标记即可(偏向),轻度竞争用 CAS 自旋(轻量级),自旋失败转内核互斥锁(重量级)。机制拆解讲清升级路径这条主线。无竞争时,JVM 可以让 Mark Word 记录"锁偏向于某线程",该线程再进入只需比较线程 ID,几乎零成本——不过这条路径在 JDK 15 已被废弃并默认关闭,因为偏向锁在多线程竞争场景收益有限、却持续占用额外判断。轻度竞争下(预计很快能拿到锁),改用轻量级锁:在线程栈上生成 Lock Record,用 CAS 把 Mark Word 指向它,自旋若干次尝试加锁。 自旋失败则膨胀为重量级锁,线程被挂起交给内核调度,对象头记录指向ObjectMonitor,竞争线程进入等待队列。三者的取舍逻辑很清晰:能用用户态解决的就不进内核,能

相关新闻

第040篇 volatile:可见性、有序性与禁止重排

第040篇 volatile:可见性、有序性与禁止重排

volatile 这题的特别之处在于,它能把"看过资料"和"写过代码"区分开。前者的回答停在名词——可见性、有序性;后者的回答里有执行路径、有数据流向、有失败模式。面试官要的正是后者,而这两种回答之间的差距,比这道题本身的难度大得多。 先把结论放在前…

2026/10/5 6:54:27 阅读更多 →
Unity全景视频播放实战:投影原理、RenderTexture与真机踩坑全解析

Unity全景视频播放实战:投影原理、RenderTexture与真机踩坑全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 6:54:27 阅读更多 →
适合新手的 AI 作曲工具推荐:不会乐理,也能从旋律灵感走到完整作品

适合新手的 AI 作曲工具推荐:不会乐理,也能从旋律灵感走到完整作品

适合新手的 AI 作曲工具推荐:不会乐理,也能从旋律灵感走到完整作品 很多新手卡在作曲的第一步:脑子里会哼两句,却不知道怎么扩成主歌;试着配和弦,又觉得走向不顺;伴奏做出来有氛围,但…

2026/10/5 6:54:27 阅读更多 →

最新新闻

Google AX 开源:用声明式 YAML 编排十亿级 AI Agent 任务

Google AX 开源:用声明式 YAML 编排十亿级 AI Agent 任务

1. 从“一天一个开源项目”聊起:为什么 AX 值得单独写一篇做 Agent 开发这两年,我最大的感受就是:写一个能跑的 Agent 不难,难的是让一千个、一万个甚至更多 Agent 稳定地跑起来、跑对、跑完还能查账。单机跑个 ReAct 循环&#x…

2026/10/5 9:22:54 阅读更多 →
AX 声明式编排:用 YAML 搞定多 Agent 协同与调度

AX 声明式编排:用 YAML 搞定多 Agent 协同与调度

1. 从“手搓 Agent”到“声明式编排”:AX 到底想解决什么问题如果你最近半年在折腾 AI Agent,大概率经历过这样一个阶段:一开始写个 ReAct 循环,调几个工具,跑个 demo 觉得“就这?”。然后业务稍微复杂一点…

2026/10/5 9:22:54 阅读更多 →
DeepSeek中小企业实战落地指南:从技术选型到场景部署

DeepSeek中小企业实战落地指南:从技术选型到场景部署

简介:面向中小型企业数字化转型与AI落地需求的DeepSeek实战指南,适合想要将大模型技术应用于客户服务、市场营销、供应链与财务管理等业务场景的技术人员和管理者。文档基于实际业务视角,覆盖从技术原理、开发环境搭建到智能客服、精准营销、…

2026/10/5 9:22:54 阅读更多 →
护网面试题备考指南:考点分布与闭环复习方法

护网面试题备考指南:考点分布与闭环复习方法

简介:这份合集收录了一百多套HW(护网)与安全岗位面试题,覆盖天融信、漏洞盒子、长亭、安恒、奇安信、360、阿里等十余家知名一线厂商的真实面试内容。既有HW初级、中级面试题和2023护网面试题,也有近一百份面向安全服务…

2026/10/5 9:22:54 阅读更多 →
Cartographer源码安装与官网数据集实测:从依赖编译到跑通2D SLAM

Cartographer源码安装与官网数据集实测:从依赖编译到跑通2D SLAM

Cartographer 这套系统我断断续续折腾过好多次,从最开始在 Ubuntu 16.04 上被依赖坑到怀疑人生,到后来在 Noetic 上一条命令跑通,中间攒了不少经验。如果你正卡在“安装”这一步,或者刚装完不知道拿什么验证效果,这篇就…

2026/10/5 9:22:54 阅读更多 →
无线网络安全实验全流程:从抓包到防御的完整复现指南

无线网络安全实验全流程:从抓包到防御的完整复现指南

简介:这份《无线网络安全实验》PDF 面向信息安全、网络工程等专业的学生与实验指导教师,对应《信息系统安全技术及应用》课程中的「无线网络安全性研究与实践」实验项目,可用于课程实验报告撰写、实验流程复盘与安全技术入门练习。资源包内共…

2026/10/5 9:21:54 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起:它到底在解决什么问题如果你最近在折腾 AI 编程工具,尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手,那你大概率绕不开一个词——plugins。这个词本身不新鲜,从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:23 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 5:06:42 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 1:10:22 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 3:06:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 20:14:29 阅读更多 →