1package main 2 3// go 携程共享 数据 4// 加锁解锁操作 5// 同步锁 6import ( 7 "sync" 8 "fmt" 9) 10func computed (data *int, lock *sync.Mutex){ 11 lock.Lock() // 加锁霸占数据 12 *data++ 13 lock.Unlock() // 解锁让出数据 14} 15 16func main() { 17 var data int = 0 18 lock :=&sync.Mutex{} 19 for i:=0;i<10;i++ { // 启动10个携程 20 go computed(&data,lock) 21 } 22 23 for { 24 lock.Lock() 25 c:=data 26 lock.Unlock() 27 if c >= 10 { 28 fmt.Println(data) 29 break 30 } 31 } 32}
go并发基础数据加锁解锁
Wesley13
2021-10-11
1408 0 0
点赞
收藏
评论区
加载中...