Junior — Middle
Cosa si intende per strutture dati thread-safe nel contesto della multithreading?
sobes.tech AI
Risposta dell'AI
Le strutture dati thread-safe sono quelle che funzionano correttamente quando vengono accessate contemporaneamente da più thread, senza causare condizioni di gara o corruzione dei dati. In C#, includono, ad esempio, le classi dello spazio dei nomi System.Collections.Concurrent, come ConcurrentDictionary o ConcurrentQueue.
Esempio di utilizzo di ConcurrentQueue:
using System.Collections.Concurrent;
var queue = new ConcurrentQueue<int>();
// Aggiunta di elementi da thread diversi
queue.Enqueue(1);
queue.Enqueue(2);
// Estrazione sicura di un elemento
if (queue.TryDequeue(out int result))
{
Console.WriteLine(result);
}
Queste strutture garantiscono una sincronizzazione interna, permettendo di evitare blocchi o di minimizzarli.