Sobes.tech
Junior — Middle

A mutex egy szálak szinkronizálására szolgáló eszköz?

sobes.tech MI

Válasz az MI-től

Igen, a mutex (kölcsönös kizárás) egy szálak szinkronizálására szolgáló eszköz. Go-ban ez a sync.Mutex struktúra, amely lehetővé teszi a közös erőforrások egyidejű hozzáférésének korlátozását, és megakadályozza a versenyhelyzeteket. Amikor egy szál (goroutine) megszerzi a mutexet, a többi, aki megpróbálja megszerezni, blokkolva lesz, amíg az el nem szabadul.

Példa mutex használatára Go-ban:

var mu sync.Mutex
var counter int

func increment() {
    mu.Lock()           // mutex zárolása
    defer mu.Unlock()   // mutex feloldása
    counter++
}