浅谈队列

在以前的大业务中大部分的的时候是直接把请求的信息插入数据库。可是随着数据量和并发量的增加,简单的插表不能在解决 并发问题。这时候就要对原有的业务进行改造,写入是同步写入队列当中,然后异步对队列就行操作。

队列?

 队列是什么呢?

队列在按接收顺序存储消息方面非常有用,以便于进行顺序处理。此类将队列作为循环数组实现。存储在 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();
        }

队列里不止可以存,简单类型,也可以存复杂类型  在很大时候也需要队列支持



原文地址:https://www.cnblogs.com/Traner/p/2819994.html