自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

技术原始积累

记录成长的点点滴滴,以及比较好的技术与人生为人处世的文章

  • 博客(554)
  • 收藏
  • 关注

原创 荣格:人到中年突然没了动力,不是病了,是该找回自己了

我们奋力活成父母期待的模样、社会认可的标杆,在追逐中完成生存与立足,却很少叩问自己的内心:我真正想要的,到底是什么?所谓个体化,就是彻底剥离层层伪装的人格面具,接纳自身所有光明与阴暗的面向,整合理性与感性的自我,最终成为一个独立、完整、独一无二的自己。不必再执着于外界的评判,不必困在世俗的标准里自我内耗,放下所有迎合与伪装,去接纳真实的自己,去奔赴内心真正热爱的一切。人生真正的成熟,从来不是活成所有人期待的样子,而是历经半生风雨,终于有勇气,活成自己本来的模样。外界的夸赞与认可,再也无法抚平内心的空洞。

2026-05-24 13:10:37 369

原创 A2A(Agent-to-Agent)协议:Agent 之间的下一个标准

支持,包括 Google、Microsoft、AWS、Salesforce、SAP、ServiceNow、IBM 等,Google ADK、LangGraph、CrewAI、LlamaIndex、Semantic Kernel 均已原生集成。A2A(Agent-to-Agent Protocol)是 Agent 之间的 HTTP——一个标准化的通信协议,让任何框架、任何模型构建的 Agent 都能互相发现、互相委托任务、互相交换结果。等你需要跨团队、跨公司的 Agent 协作时再学,就晚了。

2026-05-22 09:45:10 686

原创 Go 并发编程之美

(第 6~10 章)系统讲解 Go 标准库提供的各类同步工具:goroutine 生命周期管理、sync 包中的互斥锁与条件变量、sync/atomic 无锁原子操作、WaitGroup 与 Once,以及 Go 并发体系的核心——channel。然而,无论是职场面试,还是构建高并发、高流量的生产系统,并发编程都是无法绕过的核心能力。(第 1~3 章)从宏观视角介绍 Go 并发编程的哲学背景、并发与并行的本质区别,以及并发编程中最常见的三类难题——数据竞争、原子性和内存访问同步。这是全书的理论基石。

2026-05-21 09:39:53 418 1

转载 Harness Engineering:耗时一周,我是如何将应用的AI Coding率提升至90%的

当我们把 Agent 放进一个真实的企业级代码库——十几万行代码、多条业务链路交织、技术栈涉及 RPC 框架、流程编排引擎、配置中心、分布式缓存等中间件——很快就会遇到一个普遍的困境:Agent 写出来的代码往往"语法正确、风格统一,但业务语义上存在微妙的错误"。"在我的实践中,编码 Agent 和评审 Agent 的分离确实带来了显著的质量收益——评审 Agent 发现了编码 Agent 遗漏的渠道判断逻辑(一个潜在的线上故障),还在另一个需求中检测到 Agent 试图跳过评审阶段并强制回退。

2026-05-07 08:40:24 363

转载 深度解析 Hermes Agent 如何实现“自进化”及其 Prompt / Context / Harness 的设计实践

除此之外,Hermes 在 Prompt Engineering 方面的其他特性,比如System Prompt的动态拼装机制,跟OpenClaw, 或者Claude Code是非常相似的,也是先定义了Agent的身份,再去加载了一些人设、灵魂,然后是工具调用,包括工具的指导、时间戳、网关Gateway信息、Memory记忆、模型信息等等,于是在这里我就不赘述了。为此,Hermes 会根据当前选用的具体模型,动态注入针对性的指令补丁,对有惰性的模型强调“执行而非描述”,对粗糙模型强调“规范与顺序”。

2026-04-24 09:08:48 311

转载 深入源码:Hermes Agent 如何实现 “Self-Improving“

Hermes 的做法反过来:容量有限就倒逼 Agent 做信息压缩,过时的自然被挤掉,留下的都是高密度事实。Skill 多了以后不能全塞进系统提示词——这也是 OpenClaw 的一个痛点:它采用"重型背包"模式,每次会话把 SOUL.md、IDENTITY.md 和各种设定一股脑塞进上下文,设定越多背包越沉,Token 浪费严重,模型注意力也被稀释。OpenClaw 也有 Skill 系统,也是 SKILL.md + YAML frontmatter,但 Skill 要么是你手写的,要么是从社区装的。

2026-04-23 08:53:08 138

转载 深入源码:Hermes Agent 如何实现 “Self-Improving“

Hermes 的做法反过来:容量有限就倒逼 Agent 做信息压缩,过时的自然被挤掉,留下的都是高密度事实。Skill 多了以后不能全塞进系统提示词——这也是 OpenClaw 的一个痛点:它采用"重型背包"模式,每次会话把 SOUL.md、IDENTITY.md 和各种设定一股脑塞进上下文,设定越多背包越沉,Token 浪费严重,模型注意力也被稀释。OpenClaw 也有 Skill 系统,也是 SKILL.md + YAML frontmatter,但 Skill 要么是你手写的,要么是从社区装的。

2026-04-23 08:53:08 89

转载 深入源码:Hermes Agent 如何实现 “Self-Improving“

Hermes 的做法反过来:容量有限就倒逼 Agent 做信息压缩,过时的自然被挤掉,留下的都是高密度事实。Skill 多了以后不能全塞进系统提示词——这也是 OpenClaw 的一个痛点:它采用"重型背包"模式,每次会话把 SOUL.md、IDENTITY.md 和各种设定一股脑塞进上下文,设定越多背包越沉,Token 浪费严重,模型注意力也被稀释。OpenClaw 也有 Skill 系统,也是 SKILL.md + YAML frontmatter,但 Skill 要么是你手写的,要么是从社区装的。

2026-04-23 08:53:08 65

转载 深入源码:Hermes Agent 如何实现 “Self-Improving“

Hermes 的做法反过来:容量有限就倒逼 Agent 做信息压缩,过时的自然被挤掉,留下的都是高密度事实。Skill 多了以后不能全塞进系统提示词——这也是 OpenClaw 的一个痛点:它采用"重型背包"模式,每次会话把 SOUL.md、IDENTITY.md 和各种设定一股脑塞进上下文,设定越多背包越沉,Token 浪费严重,模型注意力也被稀释。OpenClaw 也有 Skill 系统,也是 SKILL.md + YAML frontmatter,但 Skill 要么是你手写的,要么是从社区装的。

2026-04-23 08:53:08 35

转载 深入源码:Hermes Agent 如何实现 “Self-Improving“

Hermes 的做法反过来:容量有限就倒逼 Agent 做信息压缩,过时的自然被挤掉,留下的都是高密度事实。Skill 多了以后不能全塞进系统提示词——这也是 OpenClaw 的一个痛点:它采用"重型背包"模式,每次会话把 SOUL.md、IDENTITY.md 和各种设定一股脑塞进上下文,设定越多背包越沉,Token 浪费严重,模型注意力也被稀释。OpenClaw 也有 Skill 系统,也是 SKILL.md + YAML frontmatter,但 Skill 要么是你手写的,要么是从社区装的。

2026-04-23 08:53:08 57

转载 深入源码:Hermes Agent 如何实现 “Self-Improving“

Hermes 的做法反过来:容量有限就倒逼 Agent 做信息压缩,过时的自然被挤掉,留下的都是高密度事实。Skill 多了以后不能全塞进系统提示词——这也是 OpenClaw 的一个痛点:它采用"重型背包"模式,每次会话把 SOUL.md、IDENTITY.md 和各种设定一股脑塞进上下文,设定越多背包越沉,Token 浪费严重,模型注意力也被稀释。OpenClaw 也有 Skill 系统,也是 SKILL.md + YAML frontmatter,但 Skill 要么是你手写的,要么是从社区装的。

2026-04-23 08:53:08 33

转载 深入源码:Hermes Agent 如何实现 “Self-Improving“

Hermes 的做法反过来:容量有限就倒逼 Agent 做信息压缩,过时的自然被挤掉,留下的都是高密度事实。Skill 多了以后不能全塞进系统提示词——这也是 OpenClaw 的一个痛点:它采用"重型背包"模式,每次会话把 SOUL.md、IDENTITY.md 和各种设定一股脑塞进上下文,设定越多背包越沉,Token 浪费严重,模型注意力也被稀释。OpenClaw 也有 Skill 系统,也是 SKILL.md + YAML frontmatter,但 Skill 要么是你手写的,要么是从社区装的。

2026-04-23 08:53:08 40

转载 深入源码:Hermes Agent 如何实现 “Self-Improving“

Hermes 的做法反过来:容量有限就倒逼 Agent 做信息压缩,过时的自然被挤掉,留下的都是高密度事实。Skill 多了以后不能全塞进系统提示词——这也是 OpenClaw 的一个痛点:它采用"重型背包"模式,每次会话把 SOUL.md、IDENTITY.md 和各种设定一股脑塞进上下文,设定越多背包越沉,Token 浪费严重,模型注意力也被稀释。OpenClaw 也有 Skill 系统,也是 SKILL.md + YAML frontmatter,但 Skill 要么是你手写的,要么是从社区装的。

2026-04-23 08:53:08 45

转载 深入源码:Hermes Agent 如何实现 “Self-Improving“

Hermes 的做法反过来:容量有限就倒逼 Agent 做信息压缩,过时的自然被挤掉,留下的都是高密度事实。Skill 多了以后不能全塞进系统提示词——这也是 OpenClaw 的一个痛点:它采用"重型背包"模式,每次会话把 SOUL.md、IDENTITY.md 和各种设定一股脑塞进上下文,设定越多背包越沉,Token 浪费严重,模型注意力也被稀释。OpenClaw 也有 Skill 系统,也是 SKILL.md + YAML frontmatter,但 Skill 要么是你手写的,要么是从社区装的。

2026-04-23 08:53:08 49

转载 深入源码:Hermes Agent 如何实现 “Self-Improving“

Hermes 的做法反过来:容量有限就倒逼 Agent 做信息压缩,过时的自然被挤掉,留下的都是高密度事实。Skill 多了以后不能全塞进系统提示词——这也是 OpenClaw 的一个痛点:它采用"重型背包"模式,每次会话把 SOUL.md、IDENTITY.md 和各种设定一股脑塞进上下文,设定越多背包越沉,Token 浪费严重,模型注意力也被稀释。OpenClaw 也有 Skill 系统,也是 SKILL.md + YAML frontmatter,但 Skill 要么是你手写的,要么是从社区装的。

2026-04-23 08:53:08 31

转载 深入源码:Hermes Agent 如何实现 “Self-Improving“

Hermes 的做法反过来:容量有限就倒逼 Agent 做信息压缩,过时的自然被挤掉,留下的都是高密度事实。Skill 多了以后不能全塞进系统提示词——这也是 OpenClaw 的一个痛点:它采用"重型背包"模式,每次会话把 SOUL.md、IDENTITY.md 和各种设定一股脑塞进上下文,设定越多背包越沉,Token 浪费严重,模型注意力也被稀释。OpenClaw 也有 Skill 系统,也是 SKILL.md + YAML frontmatter,但 Skill 要么是你手写的,要么是从社区装的。

2026-04-23 08:53:08 39

转载 深入源码:Hermes Agent 如何实现 “Self-Improving“

Hermes 的做法反过来:容量有限就倒逼 Agent 做信息压缩,过时的自然被挤掉,留下的都是高密度事实。Skill 多了以后不能全塞进系统提示词——这也是 OpenClaw 的一个痛点:它采用"重型背包"模式,每次会话把 SOUL.md、IDENTITY.md 和各种设定一股脑塞进上下文,设定越多背包越沉,Token 浪费严重,模型注意力也被稀释。OpenClaw 也有 Skill 系统,也是 SKILL.md + YAML frontmatter,但 Skill 要么是你手写的,要么是从社区装的。

2026-04-23 08:53:08 37

转载 深入源码:Hermes Agent 如何实现 “Self-Improving“

Hermes 的做法反过来:容量有限就倒逼 Agent 做信息压缩,过时的自然被挤掉,留下的都是高密度事实。Skill 多了以后不能全塞进系统提示词——这也是 OpenClaw 的一个痛点:它采用"重型背包"模式,每次会话把 SOUL.md、IDENTITY.md 和各种设定一股脑塞进上下文,设定越多背包越沉,Token 浪费严重,模型注意力也被稀释。OpenClaw 也有 Skill 系统,也是 SKILL.md + YAML frontmatter,但 Skill 要么是你手写的,要么是从社区装的。

2026-04-23 08:53:08 48

转载 深入源码:Hermes Agent 如何实现 “Self-Improving“

Hermes 的做法反过来:容量有限就倒逼 Agent 做信息压缩,过时的自然被挤掉,留下的都是高密度事实。Skill 多了以后不能全塞进系统提示词——这也是 OpenClaw 的一个痛点:它采用"重型背包"模式,每次会话把 SOUL.md、IDENTITY.md 和各种设定一股脑塞进上下文,设定越多背包越沉,Token 浪费严重,模型注意力也被稀释。OpenClaw 也有 Skill 系统,也是 SKILL.md + YAML frontmatter,但 Skill 要么是你手写的,要么是从社区装的。

2026-04-23 08:53:08 54

转载 深入源码:Hermes Agent 如何实现 “Self-Improving“

Hermes 的做法反过来:容量有限就倒逼 Agent 做信息压缩,过时的自然被挤掉,留下的都是高密度事实。Skill 多了以后不能全塞进系统提示词——这也是 OpenClaw 的一个痛点:它采用"重型背包"模式,每次会话把 SOUL.md、IDENTITY.md 和各种设定一股脑塞进上下文,设定越多背包越沉,Token 浪费严重,模型注意力也被稀释。OpenClaw 也有 Skill 系统,也是 SKILL.md + YAML frontmatter,但 Skill 要么是你手写的,要么是从社区装的。

2026-04-23 08:53:08 41

转载 深入源码:Hermes Agent 如何实现 “Self-Improving“

Hermes 的做法反过来:容量有限就倒逼 Agent 做信息压缩,过时的自然被挤掉,留下的都是高密度事实。Skill 多了以后不能全塞进系统提示词——这也是 OpenClaw 的一个痛点:它采用"重型背包"模式,每次会话把 SOUL.md、IDENTITY.md 和各种设定一股脑塞进上下文,设定越多背包越沉,Token 浪费严重,模型注意力也被稀释。OpenClaw 也有 Skill 系统,也是 SKILL.md + YAML frontmatter,但 Skill 要么是你手写的,要么是从社区装的。

2026-04-23 08:53:08 49

转载 深入源码:Hermes Agent 如何实现 “Self-Improving“

Hermes 的做法反过来:容量有限就倒逼 Agent 做信息压缩,过时的自然被挤掉,留下的都是高密度事实。Skill 多了以后不能全塞进系统提示词——这也是 OpenClaw 的一个痛点:它采用"重型背包"模式,每次会话把 SOUL.md、IDENTITY.md 和各种设定一股脑塞进上下文,设定越多背包越沉,Token 浪费严重,模型注意力也被稀释。OpenClaw 也有 Skill 系统,也是 SKILL.md + YAML frontmatter,但 Skill 要么是你手写的,要么是从社区装的。

2026-04-23 08:53:08 31

转载 深入源码:Hermes Agent 如何实现 “Self-Improving“

Hermes 的做法反过来:容量有限就倒逼 Agent 做信息压缩,过时的自然被挤掉,留下的都是高密度事实。Skill 多了以后不能全塞进系统提示词——这也是 OpenClaw 的一个痛点:它采用"重型背包"模式,每次会话把 SOUL.md、IDENTITY.md 和各种设定一股脑塞进上下文,设定越多背包越沉,Token 浪费严重,模型注意力也被稀释。OpenClaw 也有 Skill 系统,也是 SKILL.md + YAML frontmatter,但 Skill 要么是你手写的,要么是从社区装的。

2026-04-23 08:53:08 34

转载 深入源码:Hermes Agent 如何实现 “Self-Improving“

Hermes 的做法反过来:容量有限就倒逼 Agent 做信息压缩,过时的自然被挤掉,留下的都是高密度事实。Skill 多了以后不能全塞进系统提示词——这也是 OpenClaw 的一个痛点:它采用"重型背包"模式,每次会话把 SOUL.md、IDENTITY.md 和各种设定一股脑塞进上下文,设定越多背包越沉,Token 浪费严重,模型注意力也被稀释。OpenClaw 也有 Skill 系统,也是 SKILL.md + YAML frontmatter,但 Skill 要么是你手写的,要么是从社区装的。

2026-04-23 08:53:08 38

转载 深入源码:Hermes Agent 如何实现 “Self-Improving“

Hermes 的做法反过来:容量有限就倒逼 Agent 做信息压缩,过时的自然被挤掉,留下的都是高密度事实。Skill 多了以后不能全塞进系统提示词——这也是 OpenClaw 的一个痛点:它采用"重型背包"模式,每次会话把 SOUL.md、IDENTITY.md 和各种设定一股脑塞进上下文,设定越多背包越沉,Token 浪费严重,模型注意力也被稀释。OpenClaw 也有 Skill 系统,也是 SKILL.md + YAML frontmatter,但 Skill 要么是你手写的,要么是从社区装的。

2026-04-23 08:53:08 46

转载 从需求到上线,AI 把研发流程串起来了:一份可落地的全链路自动化实践指南

现在:通过 MCP 工具对接环境平台,AI 根据技术方案自动识别依赖的服务和组件,一键拉起完整测试环境,耗时 5-10 分钟,零平台切换。面向 AI 的技术方案需要结构化:接口定义、数据模型、业务规则、异常处理,用 AI 能解析的格式输出(如 Markdown 表格、YAML、JSON)。把 SOP 拆解成可编排的 Skill(技能),比如"环境创建 Skill"、"DDL 申请 Skill"、"接口测试 Skill"别追求"无人化",追求"。如果你给 AI 的需求是"做个用户管理功能",AI 只能猜。

2026-04-21 08:10:20 342

原创 Top 5 AI 公司生态对比

安全性最强、工程哲学最深、MCP 协议主导权、长上下文处理领先、Claude Code 成为开发者首选编程 Agent。:搜索数据垄断、Android 10 亿设备入口、TPU 自研算力、Gmail/Drive/Docs 深度整合。:X 平台实时数据(独家)、马斯克跨行业生态(Tesla/SpaceX)、超算规模激进扩张。:用户基数最大、生态最成熟、微软全面加持(Office/Azure/Bing):开源颠覆定价体系、社交平台 30 亿用户数据、可本地部署、社区生态最大。Alphabet ~2万亿美元。

2026-04-19 11:22:08 480

原创 Hermes Agent 深度解析:越用越强的自进化 AI 智能体

的场景(DevOps、内容创作、研究分析、客户服务等),Hermes Agent 的自进化特性能够带来随时间不断累积的复合收益——这是目前大多数 Agent 框架所不具备的特质。因为"任务完成"在 Agent 架构中难以精确定义,而工具调用次数是衡量"对话复杂度"的可靠代理指标——简单的问答不会触发(迭代少),只有真正经历了多步执行的任务才会触发。一旦建立缓存,对话中途。:对 Skill 内容、系统提示、工具描述进行"变异 + 选择 + 保留",类似生物进化,最终存活的是效果最好的版本。

2026-04-18 08:00:36 959

原创 我用 300 行代码,实践了 Anthropic 的 Agent 架构哲学

当你看到"通过率 62.5%,平均评分 8.3",并且知道 pass_threshold 是 9.5,这时你就有数据决策:是调低阈值(放宽假设),还是改进 Generator 的系统提示词,还是扩大 Sandbox 的工具集。要加监控,还是改 Agent。不是工具不够多,而是我们一直在用错误的方式搭建 Agent——把太多"假设"硬编码进了架构里,当模型能力提升后,这些假设变成了枷锁。它在完全独立的上下文里运行,不知道 Generator 说过什么,只知道合同的验收标准和 Generator 的产出。

2026-04-15 20:49:27 606

原创 第 8 章:sync/atomic——无锁并发编程

包的核心 API——Add、CAS、Load/Store、Swap 四类操作,深入分析 CAS 的原理和 ABA 问题,以及原子操作与互斥锁的适用场景对比。在上一章中我们学习了互斥锁和读写锁。锁是强有力的同步工具,但它也有代价:获取和释放锁在竞争激烈时需要上下文切换,这些开销在高频调用场景下可能成为性能瓶颈。原子操作直接利用 CPU 提供的原子指令(如 x86 的。等),在硬件层面保证操作的不可分割性,无需操作系统的介入。第 8 章:sync/atomic——无锁并发编程。包提供了一种更轻量的替代方案——

2026-04-12 16:24:56 51

原创 第 11 章:Context——并发任务的控制与超时

在实际工程中,并发任务往往不是独立存在的——一个 HTTP 请求可能触发数据库查询、RPC 调用、缓存读写等多个并发子任务。当用户取消请求或请求超时时,所有关联的子任务都应当被及时取消,以释放资源。被纳入标准库,并迅速成为 Go 生态中最普遍使用的并发控制工具——几乎所有涉及 I/O 或跨 goroutine 协作的标准库和第三方库都接受。它提供了一种标准化的方式来传递取消信号、超时截止时间和请求级元数据。自 Go 1.7 起,第 11 章:Context——并发任务的控制与超时。第四部分:高级并发模式。

2026-04-12 16:24:56 34

原创 第 12 章:经典并发模式(Pipeline、Fan-out/Fan-in、Worker Pool)

掌握了 goroutine、channel 和 context 之后,我们已经拥有了 Go 并发编程的全部基础工具。但工具本身不等于设计能力——就像掌握了锤子和钉子不等于会建房子一样。这三种模式由 Go 团队在多次技术分享中反复推荐,是 Go 并发编程的"设计语言"。它们不仅各自解决特定的并发问题,更可以灵活组合来应对复杂的实际场景。第 12 章:经典并发模式(Pipeline、Fan-out/Fan-in、Worker Pool)Fan-out/Fan-in(扇出/扇入)Pipeline(流水线)

2026-04-12 16:24:56 44

原创 第 10 章:Channel——Go 并发的核心通信机制

Channel 是 Go 并发哲学的核心体现。"不要通过共享内存来通信,而要通过通信来共享内存"——这句话中的"通信",指的就是 channel。如果说 goroutine 是 Go 并发的执行体,那么 channel 就是 goroutine 之间传递数据和协调控制流的管道。本章将系统讲解 channel 的分类与方向、阻塞规则、关闭规则、第 10 章:Channel——Go 并发的核心通信机制。10.2 channel 的分类与方向。包结合实现超时控制的技巧。

2026-04-12 16:24:56 59

原创 第 13 章:并发陷阱与最佳实践

经过前面章节的学习,读者已经掌握了 Go 并发编程的所有核心工具和设计模式。然而,"知道怎么用"与"用好"之间还有一段距离。在实际工程中,并发程序的 bug 往往具有。——同样的代码,在不同的机器、不同的负载下,可能时而正确、时而出错。这种非确定性使得并发 bug 极难复现、极难调试。本章系统梳理 Go 并发编程中最常见的陷阱,分析每个陷阱的成因和后果,并给出具体的检测手段和最佳实践。13.2 goroutine 泄漏的检测。第 13 章:并发陷阱与最佳实践。

2026-04-12 16:24:56 59

原创 第 14 章:从开源框架看并发设计

前面的章节帮助我们建立了 Go 并发编程的工具箱和知识体系。但工程能力的提升,离不开对真实系统的分析和借鉴。优秀的开源框架经过了大量生产环境的检验,其中的并发设计往往是权衡取舍后的最佳实践。本章通过分析三个真实案例——Go 官方博客的 URL Poller(通过通信共享内存的经典示范)、beego 框架的并发启动流程,以及标准库。14.2 实战:URL Poller——通过通信共享内存。的并发设计——帮助读者将前面所学融会贯通。第 14 章:从开源框架看并发设计。

2026-04-12 16:24:56 26

原创 00_前言与目录

(第 6~10 章)系统讲解 Go 标准库提供的各类同步工具:goroutine 生命周期管理、sync 包中的互斥锁与条件变量、sync/atomic 无锁原子操作、WaitGroup 与 Once,以及 Go 并发体系的核心——channel。然而,无论是职场面试,还是构建高并发、高流量的生产系统,并发编程都是无法绕过的核心能力。(第 1~3 章)从宏观视角介绍 Go 并发编程的哲学背景、并发与并行的本质区别,以及并发编程中最常见的三类难题——数据竞争、原子性和内存访问同步。这是全书的理论基石。

2026-04-12 16:19:21 497

原创 第 5 章:Go 内存模型与 Happens-Before 原则

Go 语言的内存模型(Memory Model)规定了:一个 goroutine 在何种条件下,能够看到另一个 goroutine 对同一变量的修改结果。这类似于 Java 内存模型(JMM)所讨论的内存可见性问题。本章我们将从理论层面理解 Go 内存模型的核心——Happens-Before 原则,并通过具体示例说明其在初始化、goroutine 创建和销毁场景中的应用。当多个 goroutine 并发访问同一数据时,为了保证读写顺序的正确性,必须对并发操作进行顺序化约束。包中的原子读写函数。

2026-04-12 16:11:19 65

原创 第 7 章:sync 包——互斥锁、读写锁与条件变量

在第 1 章中我们介绍了 Go 的并发哲学:优先使用 channel 通过通信来共享内存。但在实际工程中,很多场景下使用共享内存加锁保护的方式更自然、更高效——比如保护一个并发访问的缓存 map,或者维护一个全局计数器。我们不仅会学习它们的 API 用法,更会深入理解它们的内部实现机制、happens-before 语义,以及使用中容易踩的坑。第 7 章:sync 包——互斥锁、读写锁与条件变量。包为这些场景提供了完善的同步原语。包中三个最核心的工具:互斥锁(

2026-04-12 16:11:19 27

原创 第 3 章:并发编程难在哪里

在软件开发领域,编写正确的程序本身就不容易,而编写正确的并发程序更是难中之难。并发程序的错误往往具有难以复现、随机出现的特点,这使得调试极为困难。那么,并发编程究竟难在哪里?

2026-04-12 16:11:19 33

原创 第 4 章:Go 线程模型——GMP 深度解析

理解 Go 的线程模型,是深入理解 goroutine 调度机制、性能调优乃至并发 Bug 排查的基础。本章我们将首先回顾操作系统领域常见的三种线程模型,再深入介绍 Go 独特的 GMP 线程模型,最后探讨 goroutine 阻塞时 P 的迁移机制。第 4 章:Go 线程模型——GMP 深度解析。

2026-04-12 16:11:19 59

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除