go 原子操作

 

package main

import (
    "fmt"
    "sync"
)

var n int

var lock sync.RWMutex

func main()  {
    wg := sync.WaitGroup{}
    wg.Add(1000)

    for i:=0; i<1000; i++ {
        go func() {
            defer wg.Done()
            lock.Lock()
            n++
            lock.Unlock()
        }()

    }

    wg.Wait()
    fmt.Println(n)
}

 

 

 

 

 

 

 

 

posted @ 2022-10-16 19:42  AngDH  阅读(17)  评论(0编辑  收藏  举报