Mutex
互斥锁相关的介绍使用
1. 互斥锁的定义
互斥锁:是一种同步机制,用于在存在许多执行线程的环境中强制限制对资源的访问。锁旨在实施互斥 并发控制策略。
我们来看一个示意图:
没有锁的时候,A、B、C同时争抢资源E,像打架似的谁也不让谁,有锁了以后,只有A拥有该资源,B/C只能在外面等待
索被释放
2. 互斥锁的使用
想象我们有1w个商品券发给同时发给1w个人,每个人都会得到一张商品券,每张商品券核销码都不一样,且只能核销一次
看如下简化代码:
package main
import (
"fmt"
"sync"
)
type GoodsNum struct {
value int
lock sync.Mutex // 0
}
func decrGoodNum(clientId int , good *GoodsNum,group *sync.WaitGroup) {