ConcurrentQueue队列
Posted hanszimmer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ConcurrentQueue队列相关的知识,希望对你有一定的参考价值。
队列代表了一个先进先出的对象集合。当需要对各项进行先进先出的访问时,考虑到队列。当在列表中添加一项,为入队,从列表中移除一项时,为出队。
ConcurrentQueue<T>队列是一个高效的线程安全的队列(.net Framework 4.0)
对列的初始化:
ConcurrentQueue<ApiLogContract> Queue = new ConcurrentQueue<ApiLogContract>();
Queue.Enqueue(model); //单条入队列
List<ApiLogContract> list = new List<ApiLogContract>(); //多条出列
list.add(new model{});
list.add(new model{});
list.ForEach(t =>Enqueue(t));
ApiLogContract apiLog = null; //单条出队
Queue.TryDequeue(out apiLog);
var logs = new List<ApiLogContract>(); //多条出队
if(Queue.Count>0)
{
for(int i = 0;i++;i<count;i++)
{
var source = Dequeue();
if(source != null)
{
logs.Add(source);
}
}
}
以上是关于ConcurrentQueue队列的主要内容,如果未能解决你的问题,请参考以下文章
C#:高效的线程安全队列ConcurrentQueue<T>
evpp性能测试: 对无锁队列boost::lockfree::queue和moodycamel::ConcurrentQueue做一个性能对比测试
evpp性能测试: 对无锁队列boost::lockfree::queue和moodycamel::ConcurrentQueue做一个性能对比测试