Junior — Middle
Poți enumera principalele mecanisme de sincronizare a firelor și proceselor?
sobes.tech AI
Răspuns de la AI
Mecanismele principale de sincronizare a firelor și proceselor în C# includ:
- lock — asigură accesul exclusiv la o resursă, blocând o secțiune de cod pentru alte fire.
- Mutex — mecanism de blocare între procese, care permite sincronizarea accesului între diferite procese.
- Semaphore și SemaphoreSlim — limitează numărul de fire care pot accesa simultan o resursă.
- Monitor — mecanism de blocare mai flexibil, cu posibilitatea de a aștepta și de a notifica firele.
- AutoResetEvent și ManualResetEvent — permit firelor să aștepte un semnal pentru a continua.
- Interlocked — oferă operații atomice asupra variabilelor pentru a preveni condițiile de cursă.
Exemplu de utilizare a lock:
private readonly object _locker = new object();
void IncrementCounter()
{
lock (_locker)
{
// secțiune critică
counter++;
}
}