profileRyan KesPGP keyI build stuffEmailGithubTwitterLast.fmMastodonMatrix

Golang Mutex

Description

Mutex allows up to add locks to our data so it can be accessed safely in a concurrent manner. While locked other threads can't access the data. Mutexes should generally be used for managing state.

Syntax

type Counter struct {
    mu    sync.Mutex
    value int
}

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

    c.value++
}

func (c *Counter) Value() int {
    return c.value
}

func NewCounter() *Counter {
    return &Counter{}
}