Sobes.tech
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++
}

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
}