Junior — Middle
Може ли да се обясни концепцията за interlocked и нейното приложение в многопоточната програмиране?
sobes.tech AI
Отговор от AI
Interlocked е набор от атомарни операции в C#, които осигуряват безопасна промяна на споделени данни в многопоточна среда без използването на тежки блокировки.
Основните операции на interlocked включват:
- Increment/Decrement — атомарно увеличаване или намаляване на стойността.
- CompareExchange — сравнение и замяна на стойността, ако тя е равна на очакваната.
- Exchange — замяна на стойността с нова.
Използването на interlocked позволява да се избегнат условия на състезание при актуализиране на променливи като броячи или флагове, осигурявайки коректност и производителност.
Пример за използване:
int counter = 0;
// Атомарно увеличаване на брояча
Interlocked.Increment(ref counter);
// Атомарно сравнение и замяна
int original = Interlocked.CompareExchange(ref counter, 10, 5);
По този начин, interlocked е ниско ниво инструмент за безопасна работа с разделяни данни в многопоточен програмен код.