Junior — Middle
Müqayisəli istisna (Mutex) nədir və necə işləyir?
sobes.tech Süni İntellekt
AI-dan cavab
Mutual exclusion (Mutex) — bu sinxronizasiya mexanizmi olub, müəyyən bir zamanda yalnız bir gorutin (ip) müəyyən bir resurs və ya kodun kritik hissəsinə giriş edə bilər.
Go-da bunun üçün sync.Mutex tipi istifadə olunur. Bir gorutin Lock() çağırdıqda, o mutex-i bloklayır və digər gorutinlər Lock() çağırmağa çalışdıqda, onlar mutex Unlock() ilə açılana qədər gözləyirlər.
Misal:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock()
defer mu.Unlock()
counter++
}
Bu nümunədə, increment counter dəyərini təhlükəsiz şəkildə artırır və çoxsaylı gorutinlərin eyni vaxtda girişini qarşısını alır.