mirror of
https://gitee.com/johng/gf
synced 2026-06-27 01:43:33 +08:00
并发安全容器新增LockFunc/RLockFunc方法,完善Iterator遍历方法注释
This commit is contained in:
@ -23,7 +23,7 @@ func NewStringInterfaceMap() *StringInterfaceMap {
|
||||
}
|
||||
}
|
||||
|
||||
// 给定回调函数对原始内容进行遍历
|
||||
// 给定回调函数对原始内容进行遍历,回调函数返回true表示继续遍历,否则停止遍历
|
||||
func (this *StringInterfaceMap) Iterator(f func (k string, v interface{}) bool) {
|
||||
this.mu.RLock()
|
||||
for k, v := range this.m {
|
||||
@ -184,3 +184,17 @@ func (this *StringInterfaceMap) Clear() {
|
||||
this.m = make(map[string]interface{})
|
||||
this.mu.Unlock()
|
||||
}
|
||||
|
||||
// 使用自定义方法执行加锁修改操作
|
||||
func (this *StringInterfaceMap) LockFunc(f func(m map[string]interface{})) {
|
||||
this.mu.Lock()
|
||||
f(this.m)
|
||||
this.mu.Unlock()
|
||||
}
|
||||
|
||||
// 使用自定义方法执行加锁读取操作
|
||||
func (this *StringInterfaceMap) RLockFunc(f func(m map[string]interface{})) {
|
||||
this.mu.RLock()
|
||||
f(this.m)
|
||||
this.mu.RUnlock()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user