浅谈队列
在以前的大业务中大部分的的时候是直接把请求的信息插入数据库。可是随着数据量和并发量的增加,简单的插表不能在解决 并发问题。这时候就要对原有的业务进行改造,写入是同步写入队列当中,然后异步对队列就行操作。
队列?
队列是什么呢?
队列在按接收顺序存储消息方面非常有用,以便于进行顺序处理。此类将队列作为循环数组实现。存储在 Queue 中的对象在一端插入,从另一端移除。
Queue 的容量是 Queue 可以保存的元素数。Queue 的默认初始容量为 32。向 Queue 添加元素时,将通过重新分配来根据需要自动增大容量。可通过调用 TrimToSize 来减少容量。
上面的话引用子msdn的解释。其实队列就是一个简单 就类似一个竹筒 一边只能进,一边只能出
// 新建一个队列 并且字符 入队
Queue myQ = new Queue();
//入队
myQ.Enqueue("Hello");
myQ.Enqueue("World");
myQ.Enqueue("!");
//出队 第一个元素出对
myQ.Dequeue();
Console.WriteLine("myQ");
//队列中包含的元素个数
Console.WriteLine("\tCount: {0}", myQ.Count);
Console.Write("\tValues:");
PrintValues(myQ);
}
public static void PrintValues(IEnumerable myCollection)
{
Queue str = (Queue)myCollection;
Console.Write(" Queue(Of T) 中包含{0}数。", str.Count);
foreach (Object obj in myCollection)
Console.Write(" {0}", obj);
//队列中是否包含Traner
bool b= str.Contains("Traner");
///清空队列
str.Clear();
Console.WriteLine();
Console.ReadLine();
}
队列里不止可以存,简单类型,也可以存复杂类型 在很大时候也需要队列支持