Sobes.tech
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.