Sobes.tech
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.