Sobes.tech
Junior — Middle

Standart kutubxona tomonidan taqdim etilgan asosiy sinxronizatsiya primitivlarini sanab o'ta olasizmi?

sobes.tech AI

AIdan javob

C# ning standart kutubxonasida (System.Threading nom space ichida) quyidagi asosiy sinxronizatsiya primitivlari mavjud:

  • lock (Monitor) — resursga eksklyuziv kirishni ta'minlaydi, kod bo'lakchasini bloklaydi.
  • Mutex — jarayonlararo mutex, jarayonlar o'rtasida sinxronizatsiya uchun ishlatiladi.
  • Semaphore va SemaphoreSlim — bir vaqtning o'zida resursga kiradigan oqimlar sonini cheklaydi.
  • AutoResetEvent va ManualResetEvent — oqimlar o'rtasida signal berish uchun voqealar.
  • ReaderWriterLockSlim — bir nechta oqim resursni bir vaqtning o'zida o'qishiga imkon beradi, yozishni bloklaydi.
  • SpinLock — qisqa muddatli bloklar uchun yengil primitiv, kontekst almashinuvi bo'lmaydi.

lock dan foydalanish misoli:

private readonly object _lockObj = new object();

void CriticalSection()
{
    lock(_lockObj)
    {
        // faqat bitta oqim tomonidan bajarilishi kerak bo'lgan kod
    }
}