Computer >> Máy Tính >  >> Lập trình >> C#

Bộ sưu tập đồng thời an toàn chuỗi trong C #

.NET Framework 4 mang lại không gian tên System.Collections.Concurrent. Điều này có một số lớp bộ sưu tập an toàn theo luồng và có thể mở rộng. Các tập hợp này được gọi là tập hợp đồng thời vì chúng có thể được truy cập bởi nhiều chuỗi cùng một lúc.

Sau đây là tập hợp đồng thời trong C # -

Sr.No Loại &Mô tả
1 BlockingCollection
Chức năng giới hạn và chặn cho bất kỳ loại nào.
2 ConcurrentDictionary
Triển khai an toàn theo chuỗi của từ điển các cặp khóa-giá trị.
3 ConcurrentQueue
Triển khai an toàn theo luồng của hàng đợi FIFO (vào trước, xuất trước).
4 ConcurrentStack
Triển khai an toàn theo luồng của ngăn xếp LIFO (nhập sau cùng, xuất trước).
5 ConcurrentBag
Triển khai an toàn theo luồng của một tập hợp các phần tử không có thứ tự.
6 IProductionerConsumerCollection
Giao diện mà một loại phải triển khai để được sử dụng trong BlockingCollection

Hãy để chúng tôi xem cách làm việc với ConcurrentStack , một bộ sưu tập cuối cùng vào trước (LIFO) an toàn theo chuỗi.

Tạo một ConcurrentStack.

ConcurrentStack<int> s = new ConcurrentStack<int>();

Thêm các phần tử

s.Push(1);
s.Push(2);
s.Push(3);
s.Push(4);
s.Push(5);
s.Push(6);

Hãy để chúng tôi xem một ví dụ

Ví dụ

using System;
using System.Collections.Concurrent;

class Demo{
   static void Main (){
      ConcurrentStack s = new ConcurrentStack();

      s.Push(50);
      s.Push(100);
      s.Push(150);
      s.Push(200);
      s.Push(250);
      s.Push(300);

      if (s.IsEmpty){
         Console.WriteLine("The stack is empty!");
      }

      else {
         Console.WriteLine("The stack isn't empty");
      }
   }
}