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