Junior — Middle
Vai jūs varat uzskaitīt galvenās sinhronizācijas primitīvas, ko nodrošina standarta bibliotēka?
sobes.tech AI
Atbilde no AI
Standarta C# bibliotēkā (namespace System.Threading) ir pieejami šādi galvenie sinhronizācijas primitīvi:
- lock (Monitor) — nodrošina ekskluzīvu piekļuvi resursam, bloķējot koda segmentu.
- Mutex — starpprocesu mutex, izmanto starpprocesu sinhronizācijai.
- Semaphore un SemaphoreSlim — ierobežo vienlaicīgi piekļūstošo pavedienu skaitu resursam.
- AutoResetEvent un ManualResetEvent — notikumi signāla nodrošināšanai starp pavedieniem.
- ReaderWriterLockSlim — ļauj vairākiem pavedieniem vienlaicīgi lasīt resursu, bet bloķē rakstīšanu.
- SpinLock — viegls primitīvs īsiem bloķējumiem bez konteksta pārslēgšanās.
Piemērs, kā izmantot lock:
private readonly object _lockObj = new object();
void CriticalSection()
{
lock(_lockObj)
{
// kods, kas jāizpilda tikai ar vienu pavedienu vienlaicīgi
}
}