Что такое мьютекс?

Middle
1.2k просмотров
AFK Offer AI

Мьютекс (sync.Mutex) — примитив синхронизации для защиты shared-данных от конкурентного доступа. Только одна горутина может держать блокировку.

var (
    mu      sync.Mutex
    balance int
)

func Deposit(amount int) { mu.Lock() defer mu.Unlock() balance += amount }

sync.RWMutex — read-write мьютекс: множество горутин читают одновременно (RLock), но запись (Lock) эксклюзивна. Используй RWMutex когда чтений значительно больше записей.

Важно: мьютекс в Go не реентрантный — повторный Lock() из той же горутины приведёт к deadlock.

Следующий вопрос

Что такое линтер?