Sobes.tech
Junior — Middle

Ce mecanisme de sincronizare a firelor cunoști și le poți folosi în proiectele tale?

sobes.tech AI

Răspuns de la AI

În C# sunt utilizate diferite mecanisme pentru sincronizarea firelor de execuție:

  • lock — o metodă simplă de blocare a unei secțiuni critice de cod.
  • Mutex — blocare între procese, utilă atunci când trebuie să sincronizezi accesul între diferite procese.
  • Semaphore și SemaphoreSlim — permit limitarea numărului de fire de execuție care rulează simultan o anumită secțiune de cod.
  • Monitor — mecanism mai flexibil, pe care se bazează lock.
  • ManualResetEvent și AutoResetEvent — pentru semnalizare între fire.
  • Colecții concurente din spațiul de nume System.Collections.Concurrent — asigură acces sigur pentru fire la colecții.

Exemplu de utilizare a lock:

private readonly object _lockObj = new object();

public void IncrementCounter()
{
    lock(_lockObj)
    {
        // Secțiune critică
        counter++;
    }
}