<?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>原子操作 on Tony Bai</title><link>https://tonybai.com/tags/%E5%8E%9F%E5%AD%90%E6%93%8D%E4%BD%9C/</link><description>Recent content in 原子操作 on Tony Bai</description><generator>Hugo</generator><language>zh-cn</language><copyright>2004-2026 Tony Bai. 版权所有.</copyright><lastBuildDate>Mon, 02 Mar 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://tonybai.com/tags/%E5%8E%9F%E5%AD%90%E6%93%8D%E4%BD%9C/index.xml" rel="self" type="application/rss+xml"/><item><title>别再像 2015 年那样写 Go 了：Modern Go 终极进化指南</title><link>https://tonybai.com/2026/03/02/modern-go-evolution-guide-1-0-to-1-26/</link><pubDate>Mon, 02 Mar 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/03/02/modern-go-evolution-guide-1-0-to-1-26/</guid><description>本文永久链接 – https://tonybai.com/2026/03/02/modern-go-evolution-guide-1-0-to-1-26 大家好，我是Tony Bai。 Go 语言在业界最著名的标签之一就是“向后兼容承诺（Go 1 Compatibility Promise）”。一份 10 年前写下的 Go 1.4 代码，在今天的 Go 1.26编译器下依然能完美编译并运行。 但...</description></item><item><title>从入门到极致：VictoriaMetrics 教你写出最高效的 Go 代码</title><link>https://tonybai.com/2026/01/12/victoriametrics-guide-most-efficient-go-code/</link><pubDate>Mon, 12 Jan 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/01/12/victoriametrics-guide-most-efficient-go-code/</guid><description>本文永久链接 – https://tonybai.com/2026/01/12/victoriametrics-guide-most-efficient-go-code 大家好，我是Tony Bai。 在 InfluxDB 转Rust 之后，**VictoriaMetrics** 迅速崛起，成为了 Go 生态中无可争议的第一时序数据库。凭借其惊人的写入性能、极低的内存占用以及对 Prometheu...</description></item><item><title>告别性能猜谜：一份Go并发操作的成本层级清单</title><link>https://tonybai.com/2025/08/26/go-concurrency-cost-hierarchy/</link><pubDate>Tue, 26 Aug 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/08/26/go-concurrency-cost-hierarchy/</guid><description>本文永久链接 – https://tonybai.com/2025/08/26/go-concurrency-cost-hierarchy 大家好，我是Tony Bai。 Go语言的并发模型以其简洁直观著称，但这种简单性背后，隐藏着一个跨越五个数量级的巨大性能鸿沟。当你的高并发服务遭遇性能瓶颈时，你是否也曾陷入“性能猜谜”的困境：是sync.Mutex太慢？是atomic操作不够快？还是某个cha...</description></item><item><title>系统设计的“元素周期表”：40个横跨所有领域的通用设计原则</title><link>https://tonybai.com/2025/07/31/periodic-table-of-system-design/</link><pubDate>Thu, 31 Jul 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/07/31/periodic-table-of-system-design/</guid><description>本文永久链接 – https://tonybai.com/2025/07/31/periodic-table-of-system-design 大家好，我是Tony Bai。 近日，一篇名为《系统设计的元素》（Elements of System Design）的论文引发社区热议。它的目标宏大且吸睛：通过梳理上百篇横跨操作系统、数据库、分布式系统等领域的经典论文，提炼出一套通用的**系统设计原则“...</description></item><item><title>原子操作的瓶颈与Go的多核扩展性之痛：深入剖析sync.ShardedValue及per-CPU提案</title><link>https://tonybai.com/2025/05/19/shardedvalue-per-cpu-proposal/</link><pubDate>Mon, 19 May 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/05/19/shardedvalue-per-cpu-proposal/</guid><description>原子操作的瓶颈与Go的多核扩展性之痛：深入剖析sync.ShardedValue及per-CPU提案 - Tony Bai =============== Tony Bai 一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一...</description></item><item><title>Go 1.24新特性前瞻：工具链和标准库</title><link>https://tonybai.com/2024/12/17/go-1-24-foresight-part2/</link><pubDate>Tue, 17 Dec 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/12/17/go-1-24-foresight-part2/</guid><description>本文永久链接 – https://tonybai.com/2024/12/17/go-1-24-foresight-part2 在上一篇文章中，我们介绍了即将于2025年2月发布的Go 1.24版本在语法、编译器和运行时方面的主要变化。本文将继续承接上文，重点介绍Go 1.24在工具链和标准库方面的重要更新，供大家参考。 1\. 工具链 ------- 1.1 go.mod新增tool指示符，支持...</description></item><item><title>Go 1.24新特性前瞻：语法、编译器与运行时</title><link>https://tonybai.com/2024/12/16/go-1-24-foresight-part1/</link><pubDate>Mon, 16 Dec 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/12/16/go-1-24-foresight-part1/</guid><description>Go 1.24新特性前瞻：语法、编译器与运行时 | Tony Bai =============== Tony Bai一个程序员的心路历程 * Google Go语言编码风格规范 * Google Go语言编码风格规范：指南篇 * Google Go语言编码风格规范：决定篇 * Google Go语言编码风格规范：最佳实践篇 * Go语言第一课FAQ * 关于我 * 文章列表 Go 1.24新特性...</description></item><item><title>聊聊Go语言的全局变量</title><link>https://tonybai.com/2023/03/22/global-variable-in-go/</link><pubDate>Wed, 22 Mar 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/03/22/global-variable-in-go/</guid><description>本文永久链接 – https://tonybai.com/2023/03/22/global-variable-in-go &amp;gt; 注：上面篇首配图的底图由百度文心一格生成。 C语言是Go语言的先祖之一，Go继承了很多C语言的语法与表达方式，这其中就包含了**全局变量**，虽然Go在其语法规范中并没有直接给出全局变量的定义。但是已经入门Go的童鞋都知道，在Go中**包的导出变量(exported va...</description></item><item><title>聊聊Prometheus Gauge的增减操作实现</title><link>https://tonybai.com/2023/01/10/how-prometheus-gauge-add-and-sub/</link><pubDate>Tue, 10 Jan 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/01/10/how-prometheus-gauge-add-and-sub/</guid><description>本文永久链接 – https://tonybai.com/2023/01/10/how-prometheus-gauge-add-and-sub 1\. Gauge是啥？ 熟悉Prometheus的小伙伴们都知道Prometheus提供了四大指标类型： * Counter * Gauge * Histogram * Summary Histogram和Summary是一类，但理解起来稍复杂一些，这...</description></item><item><title>Go 1.19中值得关注的几个变化</title><link>https://tonybai.com/2022/08/22/some-changes-in-go-1-19/</link><pubDate>Mon, 22 Aug 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/08/22/some-changes-in-go-1-19/</guid><description>本文永久链接 – https://tonybai.com/2022/08/22/some-changes-in-go-1-19 我们知道Go团队在2015年重新规定了团队发布版本的节奏，将Go大版本的发布频率确定为每年两次，发布窗口定为每年的2月与8月。而实现自举的Go 1.5版本是这一个节奏下发布的第一个版本。一般来说，Go团队都会在这两个窗口的中间位置发布版本，不过这几年也有意外，比如承载着泛...</description></item><item><title>GoCN社区Go读书会第二期：《Go语言精进之路》</title><link>https://tonybai.com/2022/07/07/gocn-community-go-book-club-issue2-go-programming-from-beginner-to-master/</link><pubDate>Thu, 07 Jul 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/07/07/gocn-community-go-book-club-issue2-go-programming-from-beginner-to-master/</guid><description>本文永久链接 – https://tonybai.com/2022/07/07/gocn-community-go-book-club-issue2-go-programming-from-beginner-to-master 本文是2022年6月26日我在**GoCN社区的Go读书会第二期《Go语言精进之路》直播的文字稿**。本文对直播的内容做了重新整理与修订，供喜欢阅读文字的朋友们在收看直播后...</description></item><item><title>Go 1.19新特性前瞻</title><link>https://tonybai.com/2022/06/12/go-1-19-foresight/</link><pubDate>Sun, 12 Jun 2022 00:00:00 +0800</pubDate><guid>https://tonybai.com/2022/06/12/go-1-19-foresight/</guid><description>本文永久链接 – https://tonybai.com/2022/06/12/go-1-19-foresight 美国时间2022年5月7日，Go 1.19版本开发分支进入新特性冻结(freeze)阶段，即只能修Bug，不能再向Go 1.19版本中增加新特性了。由于上一个版本Go 1.18因引入泛型改动较大，推迟了一个月发布，这直接导致了Go 1.19版本的开发周期被缩短。 虽然开发周期少了近一...</description></item><item><title>基于Redis Cluster的分布式锁实现以互斥方式操作共享资源</title><link>https://tonybai.com/2021/02/13/operate-with-shared-resources-in-a-mutually-exclusive-way-through-distributed-lock-implemented-by-redis-cluster/</link><pubDate>Sat, 13 Feb 2021 00:00:00 +0800</pubDate><guid>https://tonybai.com/2021/02/13/operate-with-shared-resources-in-a-mutually-exclusive-way-through-distributed-lock-implemented-by-redis-cluster/</guid><description>今天要说的技术方案也是有一定项目背景的。在上一个项目中，我们需要对一个redis集群中过期的key进行处理，这是一个分布式 系统，考虑到高可用性，需要具备过期处理功能的服务有多个副本，这样我们就要求在同一时间内仅有一个副本可以对过期的key&amp;gt;进行处理，如果该副本挂掉，系统会在其他副本中再挑选出一个来处理过期的key。 很显然，这里涉及到一个选主(leader election)的过程。每当涉及选主...</description></item><item><title>Uber Go语言编码规范</title><link>https://tonybai.com/2019/10/12/uber-go-style-guide/</link><pubDate>Sat, 12 Oct 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/10/12/uber-go-style-guide/</guid><description>Uber是世界领先的生活出行服务提供商，也是Go语言的早期adopter，根据Uber工程博客的内容，大致可以判断出Go语言在Uber内部扮演了十分重要的角色。Uber内部的Go语言工程实践也是硕果累累，有大量Go实现的内部工具被Uber开源到github上，诸如被Gopher圈熟知的zap、jaeger等。2018年年末Uber将内部的Go风格规范开源到github，经过一年的积累和更新，该规范...</description></item><item><title>Go程序调试、分析与优化</title><link>https://tonybai.com/2015/08/25/go-debugging-profiling-optimization/</link><pubDate>Tue, 25 Aug 2015 00:00:00 +0800</pubDate><guid>https://tonybai.com/2015/08/25/go-debugging-profiling-optimization/</guid><description>Brad Fitzpatrick在YAPC Asia 2015（Yet Another Perl Conference）上做了一次技术分享，题为：&amp;#34;Go Debugging, Profiling, and Optimization&amp;#34;。个人感觉这篇分享中价值最大的是BradFitz现场演示的一个有关如何对Go程序进行调试、分析和优化的 Demo，Brad将demo上传到了他个人在github.com...</description></item></channel></rss>