go分布式锁
这个项目已经封装了 golang版本的red-lock
注意以下几点就行了:
1.red-lock貌似得你单独拎出1台以上的相互独立的redis出来,也就是它们间没有任务联系。这有点尴尬,所以redis去实现分布式锁你最好再想个兜底的。。。比如说用mysql多版本再原子性的控制一下(之所以说mysql是因为一般的项目都有mysql+redis)
3.如果各方面要求都很高就换一种方案吧,比如说 消息队列,但就又引入了新的东西。。。
golang可重入锁的实现
如何实现可重入锁?
实现一个可重入锁需要这两点:
1.记住持有锁的线程
2.统计重入的次数
转自golangroadmap
Golang读写锁RWMutex示例
关于读写锁的问题,其实概念上大致就是调用写锁方法阻塞所有方法,调用读锁方法阻塞所有写方法,读方法可以并发执行。
网上的例子往往太过于简单,非常容易误导,并且读写锁跟排他锁,信道不一样,概念稍微绕了一些,因此记录一下。
效果: