Junior — Middle
Sistemlər çox sayda axın eyni zamanda ümumi dəyişənə və ya vəziyyətə müraciət etdikdə necə idarə olunur?
sobes.tech Süni İntellekt
AI-dan cavab
Bir neçə iş axını eyni zamanda ümumi dəyişənə və ya vəziyyətə müraciət etdikdə, yarış vəziyyəti (race condition) problemi yaranır. Yanlış məlumatların qarşısını almaq və düzgünlüyü təmin etmək üçün sinxronizasiya mexanizmləri tətbiq olunur:
- Bloklar (lock, mutex) — bir iş axını resursu müstəsna şəkildə idarə edir, digər iş axınları gözləyir.
- Monitorlar (Monitor.Enter/Exit C#-də) — daha çevik bloklama mexanizmi.
- C#-də
lockaçar sözü — monitorlar üçün sadələşdirilmiş sintaksis. - Atomik əməliyyatlar (Interlocked) — tam bloklama olmadan sadə əməliyyatlar üçün.
- Eyni zamanda işləyən kolleksiyalar — çox iş axını üçün təhlükəsiz məlumat strukturları.
C#-də lock istifadə nümunəsi:
private readonly object _sync = new object();
private int _counter = 0;
public void Increment()
{
lock(_sync)
{
_counter++;
}
}
Bu yanaşma, yalnız bir iş axınının dəyişənə müdaxilə etməsini təmin edir.