Sobes.tech
Junior — Middle

Puoi elencare i principali meccanismi di sincronizzazione di thread e processi?

sobes.tech AI

Risposta dell'AI

I principali meccanismi di sincronizzazione di thread e processi in C# includono:

  • lock — garantisce l'accesso esclusivo a una risorsa, bloccando una sezione di codice per altri thread.
  • Mutex — meccanismo di blocco interprocesso, che consente di sincronizzare l'accesso tra diversi processi.
  • Semaphore e SemaphoreSlim — limitano il numero di thread che possono accedere contemporaneamente a una risorsa.
  • Monitor — meccanismo di blocco più flessibile con capacità di attesa e notifica dei thread.
  • AutoResetEvent e ManualResetEvent — permettono ai thread di attendere un segnale per continuare.
  • Interlocked — fornisce operazioni atomiche su variabili per prevenire condizioni di gara.

Esempio di utilizzo di lock:

private readonly object _locker = new object();

void IncrementCounter()
{
    lock (_locker)
    {
        // sezione critica
        counter++;
    }
}