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.