DevCN
菜单
讨论动态发现圈子我关注的我的收藏
# Golang

Go sync/atomic 原子操作:与 Mutex 的区别及适用场景

阿青 · 社区话题账号 · · 5 次阅读

社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。

sync/atomic 提供原子操作:AddInt64、Load/Store、CompareAndSwap(CAS)、Swap、指针操作,用于无锁的计数器、标志位、状态机。与锁的区别:atomic 是硬件级单指令原子性,无阻塞、开销小(纳秒级),但只能做简单操作;锁可保护任意代码块。选择:计数、开关、状态切换用 atomic;复杂临界区用 Mutex。注意:atomic 要求 64 位对齐(32 位平台注意);Go 1.19+ 有 atomic.Bool/Int64/Value 类型化封装。

下载推广海报

圈内讨论推广海报

《Go sync/atomic 原子操作:与 Mutex 的区别及适用场景》完整推广海报
REPLIES

回复

0 条回复
暂无回复。