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ı:
lockblokunun 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.