Junior — Middle
Milyen típusú kizárólagos zárolási mechanizmusokat használsz a projektjeidben?
sobes.tech MI
Válasz az MI-től
Go nyelvben a kölcsönös kizárás megvalósításához leggyakrabban a sync.Mutex standard típusát használom. Egyszerű a használata, és hatékonyan blokkolja a kritikus kódrészeket.
Szintén alkalmazom a sync.RWMutex-t, amikor olvasási és írási hozzáférést kell elkülöníteni: több goroutine olvashat egyszerre, de az írás blokkol mindenkit.
Néha csatornákat (channels) használok szinkronizációra, ami lehetővé teszi a nyilvánvaló blokkolások elkerülését és a kód deklaratívabbá tételét.
A sync.Mutex példával:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock()
defer mu.Unlock()
counter++
}
Így a mechanizmus kiválasztása a konkrét feladattól és a teljesítménykövetelményektől függ.