Sobes.tech
Junior — Middle

Çox ipli mühitdə istifadə üçün nəzərdə tutulmuş əsas kolleksiyaları sadalayın və izah edin.

sobes.tech Süni İntellekt

AI-dan cavab

C# dilində çox iş parçacığı mühitində işləmək üçün System.Collections.Concurrent ad məkanından xüsusi kolleksiyalar mövcuddur. Bu kolleksiyalar əl ilə sinxronizasiya etmədən iş parçacığı təhlükəsiz giriş təmin edir. Əsasları:

  • ConcurrentDictionary<TKey, TValue> — çox iş parçacığı üçün təhlükəsiz sözlük, eyni zamanda oxuma və yazma imkanı verir.
  • ConcurrentQueue<T> — çox iş parçacığı üçün təhlükəsiz növbə, sonuna əlavə və əvvəldən çıxarma əməliyyatları ilə.
  • ConcurrentStack<T> — çox iş parçacığı üçün təhlükəsiz yığın, push/pop əməliyyatları ilə.
  • ConcurrentBag<T> — sıralama olmadan obyektləri saxlamaq üçün kolleksiya, paralel əlavə və çıxarma üçün optimallaşdırılmış.
  • BlockingCollection<T> — digər kolleksiyalar üzərində bloklama əməliyyatlarını dəstəkləyən, istehsalçı-istehlakçı modelini həyata keçirmək üçün faydalı.

ConcurrentDictionary istifadəsinə nümunə:

var dict = new ConcurrentDictionary<int, string>();
dict.TryAdd(1, "bir");
string value;
if (dict.TryGetValue(1, out value))
{
    Console.WriteLine(value); // çıxış: bir
}

Bu kolleksiyalar müxtəlif iş parçacığından olan məlumatlarla təhlükəsiz işləməyə imkan verir, açıq kilidləmədən.