Sobes.tech
Junior — Middle

Можете ли да набројите основне примитиве синхронизације које пружа стандардна библиотека?

sobes.tech АИ

Одговор од АИ

U standardnoj biblioteci C# (u prostoru imena System.Threading) dostupne su sledeće osnovne primitive za sinhronizaciju:

  • lock (Monitor) — obezbeđuje ekskluzivan pristup resursu, blokirajući deo koda.
  • Mutex — međuprocesni mutex, koristi se za sinhronizaciju između procesa.
  • Semaphore i SemaphoreSlim — ograničavaju broj niti koje istovremeno pristupaju resursu.
  • AutoResetEvent i ManualResetEvent — događaji za signalizaciju između niti.
  • ReaderWriterLockSlim — omogućava više niti da čitaju resurs istovremeno, ali blokira pisanje.
  • SpinLock — lagani primitiv za kratke blokade bez promene konteksta.

Primer korišćenja lock:

private readonly object _lockObj = new object();

void CriticalSection()
{
    lock(_lockObj)
    {
        // kod koji treba da se izvršava samo od strane jedne niti u isto vreme
    }
}