Исходники и презентации
This commit is contained in:
23
lessons/sync_primitives/rw_mutex_with_map/main.go
Normal file
23
lessons/sync_primitives/rw_mutex_with_map/main.go
Normal file
@ -0,0 +1,23 @@
|
||||
package main
|
||||
|
||||
import "sync"
|
||||
|
||||
type Counters struct {
|
||||
mu sync.RWMutex
|
||||
m map[string]int
|
||||
}
|
||||
|
||||
func (c *Counters) Load(key string) (int, bool) {
|
||||
c.mu.RLock()
|
||||
defer c.mu.RUnlock()
|
||||
|
||||
value, found := c.m[key]
|
||||
return value, found
|
||||
}
|
||||
|
||||
func (c *Counters) Store(key string, value int) {
|
||||
c.mu.Lock()
|
||||
defer c.mu.Unlock()
|
||||
|
||||
c.m[key] = value
|
||||
}
|
||||
Reference in New Issue
Block a user