Sobes.tech
Junior — Middle

È possibile spiegare il concetto di interlocked e la sua applicazione nella programmazione multithread?

sobes.tech AI

Risposta dell'AI

Interlocked è un insieme di operazioni atomiche in C# che garantiscono la modifica sicura di dati condivisi in ambienti multithread senza l'uso di blocchi pesanti.

Le operazioni principali di Interlocked includono:

  • Incremento/Decremento — aumento o diminuzione atomica del valore.
  • CompareExchange — confronto e sostituzione del valore se uguale a quello atteso.
  • Exchange — sostituzione del valore con uno nuovo.

L'uso di Interlocked permette di evitare condizioni di race durante l'aggiornamento di variabili come contatori o flag, garantendo correttezza e prestazioni.

Esempio di utilizzo:

int counter = 0;

// Incremento atomico del contatore
Interlocked.Increment(ref counter);

// Confronto e scambio atomico
int original = Interlocked.CompareExchange(ref counter, 10, 5);

In questo modo, Interlocked è uno strumento di basso livello per lavorare in modo sicuro con dati condivisi nella programmazione multithread.