使用CAS
技术实现sync.Locker
接口。
// 创建锁
func NewSpinLock() sync.Locker
// 申请锁
func (sl *spinLock) Lock()
// 释放锁
func (sl *spinLock) Unlock()
在sync.Mutex
基础上,增加计数器和拥有者信息。
// 创建锁
func NewRecursiveLock() sync.Locker
// 申请锁
func (sl *recursiveLock) Lock()
// 释放锁
func (sl *recursiveLock) Unlock()