在 Go 语言中使用sync.Mutex
来实现互斥锁,示例代码如下:
package main
import (
"fmt"
"sync"
)
var (
wg sync.WaitGroup
lock sync.Mutex
data int64
)
func process() {
defer lock.Unlock()
defer wg.Done()
lock.Lock()
data++
}
func main() {
for i := 0; i < 10000; i++ {
wg.Add(1)
go process()
}
wg.Wait()
fmt.Println(data)
}
输出结果为:

网友评论