Sobes.tech
Junior — Middle

Môžeš vymenovať hlavné mechanizmy synchronizácie vlákien a procesov?

sobes.tech AI

Odpoveď od AI

Hlavné mechanizmy synchronizácie vlákien a procesov v C# zahŕňajú:

  • lock — zabezpečuje výlučný prístup k zdroju, blokujúc úsek kódu pre iné vlákna.
  • Mutex — medziprocesný mechanizmus zámku, ktorý umožňuje synchronizáciu prístupu medzi rôznymi procesmi.
  • Semaphore a SemaphoreSlim — obmedzujú počet vlákien, ktoré môžu súčasne pristupovať ku zdroju.
  • Monitor — flexibilnejší mechanizmus zámku s možnosťou čakania a oznámenia vlákien.
  • AutoResetEvent a ManualResetEvent — umožňujú vláknam čakať na signál na pokračovanie.
  • Interlocked — poskytuje atómové operácie nad premennými na prevenciu súťažných podmienok.

Príklad použitia lock:

private readonly object _locker = new object();

void IncrementCounter()
{
    lock (_locker)
    {
        // kritická sekcia
        counter++;
    }
}