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