← ко всем постам
2026-06-20 · #concurrency

Мьютекс или канал: что выбрать

Девиз Go гласит: не общайтесь через разделяемую память, а разделяйте память через общение. Но это не значит, что мьютексы под запретом — у каждого инструмента своя ниша.

Когда канал

Когда мьютекс

type Counter struct {
    mu sync.Mutex
    n  int
}
func (c *Counter) Inc() {
    c.mu.Lock(); c.n++; c.mu.Unlock()
}

Для защиты одного счётчика мьютекс явно проще канала. Не усложняйте ради красивого лозунга.