.NET Framework 4 นำเนมสเปซ System.Collections.Concurrent มีคลาสคอลเล็กชันหลายคลาสที่เธรดปลอดภัยและสามารถปรับขนาดได้ คอลเล็กชันเหล่านี้เรียกว่าคอลเลกชั่นพร้อมกัน เนื่องจากสามารถเข้าถึงได้จากหลายเธรดพร้อมกัน
ประเภทคอลเลกชันที่เกิดขึ้นพร้อมกันต่อไปนี้ใช้กลไกการซิงโครไนซ์ที่มีน้ำหนักเบา:SpinLock, SpinWait เป็นต้น ซึ่งเป็นสิ่งใหม่ใน .NET Framework 4
ให้เราดูคอลเลกชันที่เกิดขึ้นพร้อมกันใน C# -
ประเภท | คำอธิบาย |
---|---|
BlockingCollection | การจำกัดและปิดกั้นการทำงานทุกประเภท |
พจนานุกรมพร้อมกัน | การใช้งานพจนานุกรมของคู่คีย์-ค่าอย่างปลอดภัยสำหรับเธรด |
คิวพร้อมกัน | การใช้งานคิว FIFO (เข้าก่อน ออกก่อน) ปลอดภัยสำหรับเธรด |
ConcurrentStack | การใช้งาน LIFO แบบปลอดภัยต่อเธรด (เข้าก่อน ออกก่อน) |
กระเป๋าพร้อมกัน | การใช้งานคอลเลกชันองค์ประกอบที่ไม่เรียงลำดับแบบปลอดภัยต่อเธรด |
IProducerConsumerCollection | อินเทอร์เฟซที่ประเภทต้องใช้เพื่อใช้ใน BlockingCollection |
ให้เราดูวิธีการทำงานกับ ConcurrentStack
ConcurrentStack<int> cs = new ConcurrentStack<int>(); cs.Push(95); cs.Push(120); cs.Push(130);