Junior — Middle
Felsorolnád a szabványkönyvtár által nyújtott fő szinkronizációs primitíveket?
sobes.tech MI
Válasz az MI-től
A C# szabványkönyvtárában (a System.Threading névtérben) a következő alapvető szinkronizációs primitívek érhetők el:
- lock (Monitor) — kizárólagos hozzáférést biztosít egy erőforráshoz, blokkolva egy kódrészt.
- Mutex — többfolyamatos mutex, a folyamatok közötti szinkronizációhoz használják.
- Semaphore és SemaphoreSlim — korlátozzák az egyszerre hozzáférő szálak számát egy erőforráshoz.
- AutoResetEvent és ManualResetEvent — események a szálak közötti jelzéshez.
- ReaderWriterLockSlim — lehetővé teszi több szálnak az erőforrás egyidejű olvasását, írni azonban blokkolja.
- SpinLock — könnyű primitív rövid zárolásokhoz, kontextusváltás nélkül.
A lock használatának példája:
private readonly object _lockObj = new object();
void CriticalSection()
{
lock(_lockObj)
{
// kód, amit csak egy szál futtathat egyszerre
}
}