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++;
}
}