Sobes.tech
Junior

C# dilində lock açar sözünün məqsədi nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Açar söz lock çox iplikli təhlükəsizliyi təmin etmək üçün kritik bölmənin yaradılmasında istifadə olunur.

Əsas məqsədləri:

  • Girişin bloklanması: lock blokunun içindəki kodun yalnız bir iplik tərəfindən icra olunmasını təmin edir.
  • Ümumi resursların qorunması: Bir neçə iplik eyni zamanda ümumi məlumatlara və ya resurslara, məsələn, sinif sahələri, kolleksiyalar və s., giriş zamanı yarış şəraitlərinin qarşısını alır.
  • İpliklərin sinxronizasiyası: Çox iplikli ssenarilərdə əməliyyatların icra ardıcıllığını təşkil etmək üçün istifadə olunur.

İstifadə nümunəsi:

private static readonly object _lockObject = new object(); // Kilid obyekti

public void UpdateCounter()
{
    // Kritik bölmənin başlanğıcı
    lock (_lockObject)
    {
        // Bu blok içindəki kod yalnız bir iplik tərəfindən eyni vaxtda icra oluna bilər
        counter++;
    }
    // Kritik bölmənin sonu
}

Kilidləmək üçün _lockObject kimi ixtisaslaşdırılmış obyekt istifadə etmək vacibdir, this və ya typeof(TypeName) istifadə etməkdən çəkinin, beləliklə potensial deadlock problemlərinin qarşısını alın. Daha mürəkkəb ssenarilər üçün object və ya System.Threading.ReaderWriterLockSlim obyektlərinin istifadəsini tövsiyə edirəm.