Sobes.tech
Back to questions
Junior — Middle
89

Каким образом осуществляется реализация взаимной блокировки (Mutex) в системах программирования?

Answer from AI

sobes.tech AI

В Go для реализации взаимной блокировки (Mutex) используется тип sync.Mutex из стандартной библиотеки. Мьютекс обеспечивает эксклюзивный доступ к разделяемым ресурсам, предотвращая одновременное выполнение критической секции несколькими горутинами.

Пример использования:

import (
    "fmt"
    "sync"
)

func main() {
    var mu sync.Mutex
    counter := 0

    mu.Lock()           // Захватываем мьютекс
    counter++           // Критическая секция
    mu.Unlock()         // Освобождаем мьютекс

    fmt.Println(counter)
}

Мьютекс блокирует выполнение других горутин, пытающихся захватить его, пока он не будет освобожден. Это предотвращает состояния гонки при доступе к общим данным.