跳到主要内容

atomic

基本概念

概念

  • sync/atomic: 提供并发安全的原子读写操作;
  • 使用场景: 简单计数器、状态标记;
  • 适用边界: 只适合简单数值或指针状态,复杂共享数据优先使用锁;

语法格式

package main

import "sync/atomic"

func main() {
var count atomic.Int64

count.Add(1) // 原子自增,并发场景下不会丢失更新
println(count.Load()) // 原子读取当前值
}

同步工具选择

工具优先使用场景
sync/atomic简单计数器、状态标记的无锁读写
sync.Mutex需要共同维护多项状态或复合不变量
sync.WaitGroup等待多个并发任务结束
sync.Once只执行一次的初始化