C# 中的线程安全并发集合


.NET Framework 4 引入了 System.Collections.Concurrent 命名空间。它有若干个线程安全且可扩展的集合类。这些集合称为并发集合,因为可以由多个线程同时访问它们。

以下是在 C# 中的并发集合 −

序号类型 & 说明
1BlockingCollection<T>
对任何类型的限定和阻断功能。
2ConcurrentDictionary<TKey,TValue>
键值对字典的线程安全实现。
3ConcurrentQueue<T>
FIFO(先进先出)队列的线程安全实现。
4ConcurrentStack<T>
LIFO(后进先出)堆栈的线程安全实现。
5ConcurrentBag<T>
元素无序集合的线程安全实现。
6IProducerConsumerCollection<T>
类型必须实现的接口,以便在 BlockingCollection 中使用

让我们看看如何使用 ConcurrentStack<T>,它是一个线程安全的最后先进先出的 (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");
      }
   }
}

更新于:2020 年 6 月 22 日

1000+ 浏览量

开启您的职业

通过完成课程获得认证

开始
广告