Junior — Middle
Puteți explica principiul de funcționare al operațiunilor atomice în programare?
sobes.tech AI
Răspuns de la AI
Operațiile atomice sunt operații care sunt executate complet sau deloc, fără posibilitatea de a fi întrerupte de alte fire de execuție. În contextul programării multi-thread, acest lucru este important pentru prevenirea condițiilor de cursă.
În Go, pachetul sync/atomic este utilizat pentru operații atomice. Acesta oferă funcții pentru modificarea în siguranță a variabilelor de tipuri primitive (de exemplu, int32, int64, uint32, uint64, uintptr), garantând că operațiile de citire, scriere și modificare vor fi efectuate atomic.
Exemplu:
import (
"fmt"
"sync/atomic"
)
func main() {
var counter int64 = 0
atomic.AddInt64(&counter, 1) // crește atomic contorul
fmt.Println(atomic.LoadInt64(&counter)) // citește valoarea atomic
}
Astfel, operațiile atomice evită utilizarea blocărilor grele (mutex) pentru operații simple, îmbunătățind performanța și siguranța în programele concurente.