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)
}
Мьютекс блокирует выполнение других горутин, пытающихся захватить его, пока он не будет освобожден. Это предотвращает состояния гонки при доступе к общим данным.