Middle
Hoe werken atomare bewerkingen?
sobes.tech AI
Antwoord van AI
Atomare operaties zijn operaties die volledig worden uitgevoerd of helemaal niet, zonder tussenliggende staten die door andere threads zichtbaar zijn.
In Go biedt de sync/atomic package functies om dergelijke operaties uit te voeren op variabelen (bijvoorbeeld AddInt32, CompareAndSwapInt64). Dit maakt het mogelijk om waarden veilig te wijzigen in een gelijktijdige omgeving zonder mutexen.
Voorbeeld:
import (
"fmt"
"sync/atomic"
)
func main() {
var counter int32 = 0
atomic.AddInt32(&counter, 1) // atomair verhogen met 1
fmt.Println(counter) // 1
}
Atomiciteit garandeert dat de operatie niet wordt onderbroken en dat andere goroutines ofwel de oude of de nieuwe waarde zien, maar geen tussenwaarde.