package main
// go 携程共享 数据
// 加锁解锁操作
// 同步锁
import (
"sync"
"fmt"
)
func computed (data *int, lock *sync.Mutex){
lock.Lock() // 加锁霸占数据
*data++
lock.Unlock() // 解锁让出数据
}
func main() {
var data int = 0
lock :=&sync.Mutex{}
for i:=0;i<10;i++ { // 启动10个携程
go computed(&data,lock)
}
for {
lock.Lock()
c:=data
lock.Unlock()
if c >= 10 {
fmt.Println(data)
break
}
}
}
go并发基础数据加锁解锁
点赞
收藏