Sobes.tech
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 е ниско ниво инструмент за безопасна работа с разделяни данни в многопоточен програмен код.