<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Mutex on Zhao Xue</title><link>https://xuezhaojun.github.io/tags/mutex/</link><description>Recent content in Mutex on Zhao Xue</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sat, 18 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://xuezhaojun.github.io/tags/mutex/index.xml" rel="self" type="application/rss+xml"/><item><title>从一次 K8s Controller 竞态崩溃聊起：彻底搞懂 Go sync 包核心原语</title><link>https://xuezhaojun.github.io/collections/go-concurrency/go-sync/</link><pubDate>Sat, 18 Apr 2026 00:00:00 +0000</pubDate><guid>https://xuezhaojun.github.io/collections/go-concurrency/go-sync/</guid><description>一个 K8s operator 在高负载下频繁 fatal crash：concurrent map read and map write。问题不在逻辑，在于共享状态的保护方式。从这个事故出发，拆解 Mutex 的正常/饥饿模式、RWMutex 的读写协调、WaitGroup 的计数器陷阱、Once 的 double-checking，以及 sync.Map 的双 map 架构。</description></item></channel></rss>