Sobes.tech
Junior — Middle

Se poate explica conceptul de interlocked și aplicarea sa în programarea multi-thread?

sobes.tech AI

Răspuns de la AI

Interlocked este un set de operații atomice în C# care asigură modificarea sigură a datelor partajate într-un mediu multithread fără utilizarea blocărilor grele.

Operațiile principale ale interlocked includ:

  • Increment/Decrement — creștere sau descreștere atomică a valorii.
  • CompareExchange — comparație și înlocuire a valorii dacă este egală cu cea așteptată.
  • Exchange — înlocuire a valorii cu una nouă.

Utilizarea interlocked permite evitarea condițiilor de cursă la actualizarea variabilelor, cum ar fi contoare sau steaguri, asigurând corectitudine și performanță.

Exemplu de utilizare:

int counter = 0;

// Creștere atomică a contorului
Interlocked.Increment(ref counter);

// Comparare și înlocuire atomică
int original = Interlocked.CompareExchange(ref counter, 10, 5);

Astfel, interlocked este un instrument de nivel scăzut pentru lucrul sigur cu datele partajate în programarea multithread.