Sobes.tech
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++;
    }
}