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