Junior
Mi biztosítja a szálbiztonságot (thread safety) Go-ban?
sobes.tech MI
Válasz az MI-től
A párhuzamos végrehajtás biztonsága Go-ban több mechanizmus révén valósul meg:
- Goroutine-ok — könnyű szálak, amelyek lehetővé teszik a kód párhuzamos futtatását.
- Csatornák — a fő eszköz az adatok biztonságos cseréjéhez goroutine-ok között anélkül, hogy megosztott változókat használnánk.
- sync csomag — szinkronizációs primitíveket tartalmaz, mint például
Mutexa kritikus szakaszok zárolására,RWMutexaz olvasási és írási zárolások megosztására, ésWaitGroupa goroutine-ok befejezésének várására.
Példa egy mutex használatára egy közös erőforrás védelmében:
import (
"sync"
)
var mu sync.Mutex
var szamlalo int
func növel() {
mu.Lock()
defer mu.Unlock()
szamlalo++
}
Így a párhuzamos végrehajtás biztonsága Go-ban a goroutine-ok, csatornák és a sync csomag primitívjeinek helyes használatával érhető el.