Sobes.tech
Junior — Middle

Standart kitabxana tərəfindən təmin olunan əsas sinxronizasiya primitivlərini sadalaya bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

C#-ın standart kitabxanasında (System.Threading ad sahəsində) aşağıdakı əsas sinxronizasiya primitivləri mövcuddur:

  • lock (Monitor) — resursa eksklüziv giriş təmin edir, kod blokunu kilidləyir.
  • Mutex — çox prosesli mutex, proseslər arasında sinxronizasiya üçün istifadə olunur.
  • Semaphore və SemaphoreSlim — eyni zamanda resursa giriş edən threadlərin sayını məhdudlaşdırır.
  • AutoResetEvent və ManualResetEvent — threadlər arasında siqnal üçün hadisələr.
  • ReaderWriterLockSlim — bir neçə thread-in eyni vaxtda resursu oxumasına imkan verir, yazmağı bloklayır.
  • SpinLock — qısa müddətli kilidlər üçün yüngül primitiv, kontekst dəyişmədən.

lock istifadə nümunəsi:

private readonly object _lockObj = new object();

void CriticalSection()
{
    lock(_lockObj)
    {
        // yalnız bir thread-in eyni zamanda icra etməli olduğu kod
    }
}