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