Junior — Middle
Go-nun standart kitabxanasında hansı növ qarşılıqlı istisnalar (Mutex) həyata keçirilmişdir?
sobes.tech Süni İntellekt
AI-dan cavab
Go-nun standart kitabxanasında, əsas qarşılıqlı istisna növü tətbiq edilmişdir: sync.Mutex. Bu, kritik kod bölmələrini eyni zamanda girişdən qorumaq üçün kilidləmə və açma təmin edən sadə mutexdir.
Bundan əlavə, sync.RWMutex mövcuddur — mutexin genişləndirilmiş versiyasıdır və çoxsaylı oxucunun eyni zamanda kilidi saxlamasına imkan verir, lakin yazma eksklüziv şəkildə bloklanır.
sync.Mutex istifadə nümunəsi:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock()
defer mu.Unlock()
counter++
}
Və sync.RWMutex ilə nümunə:
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
}