Sobes.tech
Junior — Middle

Comment la mutual exclusion (Mutex) est-elle mise en œuvre dans les systèmes de programmation?

sobes.tech IA

Réponse de l'IA

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

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

import (
    "fmt"
    "sync"
)

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

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

    fmt.Println(counter)
}

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