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