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.