Код IT
← Каталог

Важные интерфейсы и типы Go — 4.1. `sync.Mutex` и `sync.RWMutex`

Фрагмент из «Важные интерфейсы и типы Go»: 4.1. `sync.Mutex` и `sync.RWMutex`.

Go main.go
type Counter struct {
    mu    sync.Mutex
    value int
}

func (c *Counter) Inc() {
    c.mu.Lock()
    defer c.mu.Unlock()
    c.value++
}

func (c *Counter) Get() int {
    c.mu.Lock()
    defer c.mu.Unlock()
    return c.value
}
type Counter struct {
    mu    sync.Mutex
    value int
}

func (c *Counter) Inc() {
    c.mu.Lock()
    defer c.mu.Unlock()
    c.value++
}

func (c *Counter) Get() int {
    c.mu.Lock()
    defer c.mu.Unlock()
    return c.value
}