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{}
}