Junior — Middle
Кадом намудҳои истиснои мутақобил (Mutex) дар китобхонаи стандартии Go амалӣ шудаанд?
sobes.tech AI
Ҷавоб аз AI
У стандартнай бібліятэцы Go рэалізаваны асноўны тып узаемнага выключэння — sync.Mutex. Гэта просты мютэкс, які забяспечвае блакіроўку і разблакіроўку для абароны крытычных секцый кода ад адначасовага доступу.
Акрамя таго, ёсць sync.RWMutex — пашыраная версія мютэкса, якая дазваляе некалькіму чытачам утрымліваць блакіроўку адначасова, але запіс блакуецца выключна.
Прыклад выкарыстання sync.Mutex:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock()
defer mu.Unlock()
counter++
}
І прыклад з sync.RWMutex:
var rwMu sync.RWMutex
var data int
func readData() int {
rwMu.RLock()
defer rwMu.RUnlock()
return data
}
func writeData(val int) {
rwMu.Lock()
defer rwMu.Unlock()
data = val
}