Sobes.tech
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
    }
}