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