Junior — Middle
Оё метавонед primitives асосии ҳамоҳангсозиро, ки китобхонаи стандартӣ пешниҳод мекунад, номбар кунед?
sobes.tech AI
Ҷавоб аз AI
Стандартната библиотека на C# (в пространството от имена System.Threading) разполага със следните основни примитиви за синхронизация:
- lock (Monitor) — осигурява изключителен достъп до ресурс, блокирайки участък от код.
- Mutex — междупроцесен mutex, използва се за синхронизация между процеси.
- Semaphore и SemaphoreSlim — ограничават броя на нишките, които имат достъп до ресурс едновременно.
- AutoResetEvent и ManualResetEvent — събития за сигнализация между нишки.
- ReaderWriterLockSlim — позволява на няколко нишки да четат ресурс едновременно, но блокира писането.
- SpinLock — лек примитив за кратки блокировки без превключване на контекста.
Пример за използване на lock:
private readonly object _lockObj = new object();
void CriticalSection()
{
lock(_lockObj)
{
// код, който трябва да се изпълнява само от една нишка едновременно
}
}