Go sync/atomic 原子操作:与 Mutex 的区别及适用场景
sync/atomic 提供原子操作:AddInt64、Load/Store、CompareAndSwap(CAS)、Swap、指针操作,用于无锁的计数器、标志位、状态机。与锁的区别:atomic 是硬件级单指令原子性,无阻塞、开销小(纳秒级),但只能做简单操作;锁可保护任意代码块。选择:计数、开关、状态切换用 atomic;复杂临界区用 Mutex。注意:atomic 要求 64 位对齐(32 位平台注意);Go 1.19+ 有 atomic.Bool/Int64/Value 类型化封装。
一起交流
分享经验,让问题更进一步
讨论,从你的观点开始
还没有回复,欢迎补充经验或分享不同的思路。