From 05e21d15c552209d5f1da684d76bab0bfbb86844 Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 10 Jul 2024 13:27:26 +0800 Subject: [PATCH] atomic finished --- sync/atomic.go | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/sync/atomic.go b/sync/atomic.go index 7905807..67240fe 100644 --- a/sync/atomic.go +++ b/sync/atomic.go @@ -1,5 +1,28 @@ package main -func main() { +import ( + "fmt" + "sync" + "sync/atomic" +) +var a int64 //并发修改a变量的值,可能会导致数字错误 +var WG sync.WaitGroup + +//var mLock sync.Mutex //方法1,添加互斥锁 + +func main() { + for i := 0; i < 1000; i++ { + WG.Add(1) + go func() { + //mLock.Lock() //加锁 + //a++ //加法操作 + atomic.AddInt64(&a, 1) //传递全局变量指针,和要加的值,默认就是加锁和释放锁 + //mLock.Unlock() //解锁 + WG.Done() + }() + + } + WG.Wait() + fmt.Println(a) }