Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

Thread Safe Concurrent Collection ใน C #


.NET Framework 4 นำเนมสเปซ System.Collections.Concurrent มีคลาสคอลเล็กชันหลายคลาสที่เธรดปลอดภัยและสามารถปรับขนาดได้ คอลเล็กชันเหล่านี้เรียกว่าคอลเลกชั่นพร้อมกัน เนื่องจากสามารถเข้าถึงได้จากหลายเธรดพร้อมกัน

ต่อไปนี้เป็นคอลเลกชันที่เกิดขึ้นพร้อมกันใน C# -

Sr.No ประเภท &คำอธิบาย
1 BlockingCollection
ฟังก์ชัน Bounding และ Blocking สำหรับทุกประเภท
2 พจนานุกรมพร้อมกัน
การใช้งานพจนานุกรมของคู่คีย์-ค่าที่ปลอดภัยต่อเธรด
3 คิวพร้อมกัน
การใช้งานคิว FIFO (เข้าก่อน ออกก่อน) แบบปลอดภัยต่อเธรด
4 ConcurrentStack
การใช้งานสแต็ก LIFO (เข้าก่อน-ออกก่อน) อย่างปลอดภัยต่อเธรด
5 กระเป๋าพร้อมกัน
การนำคอลเล็กชันองค์ประกอบที่ไม่เรียงลำดับไปใช้อย่างปลอดภัยต่อเธรด
6 IProducerConsumerCollection
อินเทอร์เฟซที่ประเภทต้องใช้เพื่อใช้ใน BlockingCollection

ให้เราดูวิธีการทำงานกับ ConcurrentStack ซึ่งเป็นคอลเล็กชันแบบเข้าก่อนออกก่อนออกก่อน-หลัง (LIFO) แบบปลอดภัยต่อเธรด

สร้าง ConcurrentStack

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

เพิ่มองค์ประกอบ

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

มาดูตัวอย่างกัน

ตัวอย่าง

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");
      }
   }
}