<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>原子操作 on PlumePHP</title><link>https://plumephp.com/tags/%E5%8E%9F%E5%AD%90%E6%93%8D%E4%BD%9C/</link><description>Recent content in 原子操作 on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Thu, 13 Aug 2026 10:00:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/tags/%E5%8E%9F%E5%AD%90%E6%93%8D%E4%BD%9C/index.xml" rel="self" type="application/rss+xml"/><item><title>Redis 分布式锁与原子操作：SET NX EX、Redlock 与 Lua 脚本</title><link>https://plumephp.com/redis-distributed-lock/</link><pubDate>Thu, 13 Aug 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/redis-distributed-lock/</guid><description>&lt;p&gt;在分布式系统中，多个进程或服务节点需要协调对共享资源的访问。Java 中常用的 &lt;code&gt;synchronized&lt;/code&gt; 关键字和 &lt;code&gt;ReentrantLock&lt;/code&gt; 只能在单个 JVM 内生效，无法跨越进程边界。Redis 分布式锁正是解决跨进程、跨机器互斥问题的经典方案。本文将深入剖析 Redis 分布式锁的完整技术体系，从基础的单实例实现到 Redlock 多节点算法，再到 Lua 脚本原子操作、看门狗续期机制以及 Go 语言的完整工程实现，帮助你系统掌握该技术在生产环境中的应用。&lt;/p&gt;</description></item><item><title>Go atomic 包深度使用指南：从原子计数到无锁编程的完整实践</title><link>https://plumephp.com/go-atomic-basics-2022/</link><pubDate>Wed, 13 Aug 2025 10:00:00 +0800</pubDate><guid>https://plumephp.com/go-atomic-basics-2022/</guid><description>&lt;h2 id="并发计数不是-count-那么简单"&gt;并发计数不是 count++ 那么简单&lt;/h2&gt;
&lt;p&gt;多个 goroutine 同时修改一个变量时，普通 &lt;code&gt;count++&lt;/code&gt; 不是安全操作。它看起来只是一行代码，但在 CPU 层面实际包含三个步骤：从内存读取变量值到寄存器、在寄存器中执行加一操作、将结果写回内存。两个 goroutine 交错执行时，一个 goroutine 的更新可能覆盖另一个 goroutine 的计算结果，造成数据丢失。&lt;/p&gt;</description></item></channel></rss>