diff --git a/easylock/abstruct.go b/easylock/abstruct.go new file mode 100644 index 0000000..34ca973 --- /dev/null +++ b/easylock/abstruct.go @@ -0,0 +1,15 @@ +// Package easylock... +// +// Description : easylock... +// +// Author : go_developer@163.com<张德满> +// +// Date : 2021-02-24 6:29 下午 +package easylock + +type EasyLock interface { + Lock() error + Unlock() error + RLock() error + RUnlock() error +} diff --git a/easylock/lock.go b/easylock/lock.go new file mode 100644 index 0000000..9d22c0a --- /dev/null +++ b/easylock/lock.go @@ -0,0 +1,40 @@ +// Package easylock... +// +// Description : 包装各种姿势的锁 +// +// Author : go_developer@163.com<张德满> +// +// Date : 2021-02-24 6:26 下午 +package easylock + +import "sync" + +func NewLock() EasyLock { + return &lock{ + sc: &sync.RWMutex{}, + } +} + +type lock struct { + sc *sync.RWMutex +} + +func (l *lock) Lock() error { + l.sc.Lock() + return nil +} + +func (l *lock) Unlock() error { + l.sc.Unlock() + return nil +} + +func (l *lock) RLock() error { + l.sc.RLock() + return nil +} + +func (l *lock) RUnlock() error { + l.sc.Unlock() + return nil +}