package main
import (
"fmt"
"sync"
)
var (
sum int
wg sync.WaitGroup
lock sync.Mutex
)
func main() {
wg.Add(2)
go func() {
defer wg.Done()
lock.Lock()
for i := 1; i <= 100000; i++ {
sum += i
}
lock.Unlock()
}()
go func() {
defer wg.Done()
lock.Lock()
for i := 1; i <= 100000; i++ {
sum -= i
}
lock.Unlock()
}()
wg.Wait()
fmt.Println(sum)
}
go锁实现代码同步执行:sync.WaitGroup和sync.Mutex
原创
©著作权归作者所有:来自51CTO博客作者a772304419的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Go sync.WaitGroup的用法
=
golang 开发语言 后端 i++ for循环 -
go sync.WaitGroup源码分析
go版本 :1.10.3原理实现:信号量信号量是Unix系统提供的一种保护共享资源的机制,用于防止多个线程同时访问某个资源。可
WaitGroup源码 waitgroup源码 go waitgroup源码分析 信号量 Group -
golang 的 sync.WaitGroup
WaitGroup的用途:它能够一直等到所
Group golang sed