Sobes.tech
Junior — Middle

Kas saaksite loetleda standardraamatukogu pakutavaid peamisi sünkronsiooniprimitivi?

sobes.tech AI

Vastus AI-lt

Standartkirjasto C#-s (namespace System.Threading) on saadaval järgmised põhilised sünkroniseerimise primitiivid:

  • lock (Monitor) — tagab eksklusiivse juurdepääsu ressursile, blokeerides koodilõigu.
  • Mutex — mitmeprotsessiline mutex, kasutatakse protsesside vahelise sünkroniseerimise jaoks.
  • Semaphore ja SemaphoreSlim — piiravad samaaegselt ressursile juurdepääsevate lõimede arvu.
  • AutoResetEvent ja ManualResetEvent — sündmused signaalimiseks lõimede vahel.
  • ReaderWriterLockSlim — võimaldab mitmel lõimel samaaegselt ressursit lugeda, kuid blokeerib kirjutamise.
  • SpinLock — kerge primitiiv lühikesteks lukustusteks ilma kontekstivahetuseta.

Näide lock kasutamisest:

private readonly object _lockObj = new object();

void CriticalSection()
{
    lock(_lockObj)
    {
        // kood, mida peaks täitma ainult üks lõim korraga
    }
}