Sobes.tech
Junior — Middle

Aké mechanizmy synchronizácie vlákien poznáte a môžete ich použiť vo svojich projektoch?

sobes.tech AI

Odpoveď od AI

V jazyku C# sa používajú rôzne mechanizmy na synchronizáciu vlákien:

  • lock — jednoduchý spôsob blokovania kritickej sekcie kódu.
  • Mutex — medziprocesové zamykanie, užitočné, keď je potrebné synchronizovať prístup medzi rôznymi procesmi.
  • Semaphore a SemaphoreSlim — umožňujú obmedziť počet vlákien, ktoré súčasne vykonávajú určitú časť kódu.
  • Monitor — flexibilnejší mechanizmus, na ktorom je založený lock.
  • ManualResetEvent a AutoResetEvent — na signalizáciu medzi vláknami.
  • Kolekcie súbežné z priestoru názvov System.Collections.Concurrent — zabezpečujú bezpečný prístup ku kolekciám z viacerých vlákien.

Príklad použitia lock:

private readonly object _lockObj = new object();

public void IncrementCounter()
{
    lock(_lockObj)
    {
        // Kritická sekcia
        counter++;
    }
}