gmlock

package
v1.4.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 31, 2019 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package gmlock implements a thread-safe memory locker.

内存锁.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Lock

func Lock(key string, expire ...time.Duration)

内存写锁,锁成功返回true,失败时阻塞,当失败时表示有其他写锁存在;过期时间单位为秒,默认为0表示不过期

func RLock

func RLock(key string)

内存写锁,锁成功返回true,失败时阻塞,当失败时表示有写锁存在; 过期时间单位为秒,默认为0表示不过期

func RUnlock

func RUnlock(key string)

解除基于内存锁的读锁

func TryLock

func TryLock(key string, expire ...time.Duration) bool

内存写锁,如果锁成功返回true,失败则返回false;过期时间单位为秒,默认为0表示不过期

func TryRLock

func TryRLock(key string) bool

内存读锁,如果锁成功返回true,失败则返回false; 过期时间单位为秒,默认为0表示不过期

func Unlock

func Unlock(key string)

解除基于内存锁的写锁

Types

type Locker

type Locker struct {
	// contains filtered or unexported fields
}

内存锁管理对象

func New

func New() *Locker

创建一把内存锁, 底层使用的是Mutex

func (*Locker) Lock

func (l *Locker) Lock(key string, expire ...time.Duration)

内存写锁,锁成功返回true,失败时阻塞,当失败时表示有其他写锁存在;过期时间默认为0表示不过期

func (*Locker) RLock

func (l *Locker) RLock(key string)

内存写锁,锁成功返回true,失败时阻塞,当失败时表示有写锁存在; 过期时间单位为秒,默认为0表示不过期

func (*Locker) RUnlock

func (l *Locker) RUnlock(key string)

解除基于内存锁的读锁

func (*Locker) TryLock

func (l *Locker) TryLock(key string, expire ...time.Duration) bool

内存写锁,如果锁成功返回true,失败则返回false; 过期时间默认为0表示不过期

func (*Locker) TryRLock

func (l *Locker) TryRLock(key string) bool

内存读锁,如果锁成功返回true,失败则返回false; 过期时间单位为秒,默认为0表示不过期

func (*Locker) Unlock

func (l *Locker) Unlock(key string)

解除基于内存锁的写锁

type Mutex

type Mutex struct {
	// contains filtered or unexported fields
}

互斥锁对象

func NewMutex

func NewMutex() *Mutex

创建一把内存锁使用的底层RWMutex

func (*Mutex) Lock

func (l *Mutex) Lock()

func (*Mutex) RLock

func (l *Mutex) RLock()

func (*Mutex) RUnlock

func (l *Mutex) RUnlock()

安全的RUnlock

func (*Mutex) TryLock

func (l *Mutex) TryLock() bool

不阻塞Lock

func (*Mutex) TryRLock

func (l *Mutex) TryRLock() bool

不阻塞RLock

func (*Mutex) Unlock

func (l *Mutex) Unlock()

安全的Unlock

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL