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.