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