原子操作
package main
import (
"fmt"
"sync"
"sync/atomic"
)
func add() {
atomic.AddInt64(&v,1)
wg.Done()
}
var (
v int64
wg sync.WaitGroup
)
func main() {
wg.Add(1000)
for i := 0; i < 1000; i++ {
go add()
}
wg.Wait()
fmt.Println(v)
//CAS 比较并修改
atomic.CompareAndSwapInt64(&v,1000,1)
fmt.Println(v)
}