Junior
Cos'è il parallelismo?
sobes.tech AI
Risposta dell'AI
Il parallelismo (Parallelism) è l'esecuzione simultanea di più compiti o parti di un compito, di solito utilizzando più core del processore o dispositivi di calcolo separati. L'obiettivo è ridurre il tempo totale di esecuzione del programma.
In .NET, per implementare il parallelismo si utilizzano:
- Task Parallel Library (TPL): Libreria di alto livello per l'esecuzione parallela di operazioni.
- Parallel LINQ (PLINQ): Parallelizzazione delle query LINQ.
- Lavoro manuale con thread (Threads): Controllo a basso livello sulla creazione e gestione dei thread.
Esempio di utilizzo di TPL:
// Esempio di ciclo parallelo semplice
Parallel.For(0, 1000, i =>
{
// Eseguire un'operazione per ogni i in parallelo
Console.WriteLine($"Iterazione {i} sul thread {Thread.CurrentThread.ManagedThreadId}");
Thread.Sleep(10); // Simulazione di lavoro
});
Principali differenze rispetto alla concorrenza (Concurrency):
| Parametro | Parallelismo (Parallelism) | Concorrenza (Concurrency) |
|---|---|---|
| Obiettivo | Accelerare l'esecuzione grazie al lavoro simultaneo | Gestione di più compiti che possono o meno lavorare contemporaneamente |
| Richiede | Più core (o dispositivi) per vero parallelismo | Molti thread che possono switchare su un singolo core |
| Focus | Eseguire un compito più velocemente (dividendolo in parti) | Gestione e coordinamento di più compiti indipendenti |
Il parallelismo è particolarmente efficace per compiti con elevato carico computazionale (CPU-bound), che possono essere suddivisi in sotto-compiti indipendenti.