Sobes.tech
Junior — Middle

Bir vaqtning o'zida vazifalarni bajarishda iplarning xavfsizligini ta'minlash uchun qanday usullardan foydalandingiz?

sobes.tech AI

AIdan javob

C# da bir vaqtning o'zida vazifalarni bajarishda iplar xavfsizligini ta'minlash uchun turli xil sinxronizatsiya va kirish boshqaruv mexanizmlari qo'llaniladi:

  • lock — kritik bo'limni bloklaydi, shunda faqat bitta ip uni bajarishi mumkin.
  • Mutex — jarayonlararo bloklash, turli jarayonlardan kirish mumkin bo'lgan resurslar bilan ishlashda foydalidir.
  • Semaphore va SemaphoreSlim — bir vaqtning o'zida resursga kirish mumkin bo'lgan iplar sonini cheklaydi.
  • Monitor — yanada moslashuvchan bloklash mexanizmi bo'lib, voqealarni kutish va signal berish imkonini beradi.
  • Concurrent kolleksiyalar (masalan, ConcurrentDictionary, ConcurrentQueue) — kolleksiyalarga iplar xavfsiz kirishni ta'minlaydi.
  • Interlocked — o'zgaruvchilar ustida atomik operatsiyalar, raqobat shartlarini oldini oladi.

lock dan foydalanish misoli:

private readonly object _lockObj = new object();
private int _counter = 0;

public void Increment()
{
    lock(_lockObj)
    {
        _counter++;
    }
}

Bu yondashuv _counter ning turli iplar tomonidan bir vaqtning o'zida o'zgartirilishini oldini oladi, raqobat shartlarini bartaraf etadi va ma'lumotlarning yaxlitligini ta'minlaydi.