Sobes.tech
Junior — Middle

Môžete uviesť hlavné primitives synchronizácie poskytované štandardnou knižnicou?

sobes.tech AI

Odpoveď od AI

V štandardnej knižnici C# (v priestore názvov System.Threading) sú dostupné nasledujúce základné primitives synchronizácie:

  • lock (Monitor) — zabezpečuje výlučný prístup k zdroju, blokovaním úseku kódu.
  • Mutex — medziprocesový mutex, používa sa na synchronizáciu medzi procesmi.
  • Semaphore a SemaphoreSlim — obmedzujú počet vlákien, ktoré môžu súčasne pristupovať ku zdroju.
  • AutoResetEvent a ManualResetEvent — udalosti na signalizáciu medzi vláknami.
  • ReaderWriterLockSlim — umožňuje viacerým vláknam čítať zdroj súčasne, ale blokuje zápis.
  • SpinLock — ľahký primitív pre krátke zámky bez prepínania kontextu.

Príklad použitia lock:

private readonly object _lockObj = new object();

void CriticalSection()
{
    lock(_lockObj)
    {
        // kód, ktorý má byť vykonaný iba jedným vláknom naraz
    }
}