C# 同步/并发队列ConcurrentQueue (表示线程安全的先进先出 (FIFO) 集合)
2014-03-18 11:35
477 查看
http://msdn.microsoft.com/zh-cn/library/dd267265(v=vs.110).aspx
static void Main(string[] args) { // Construct a ConcurrentQueue. ConcurrentQueue<int> cq = new ConcurrentQueue<int>(); // Populate the queue. for (int i = 0; i < 10000; i++) cq.Enqueue(i); // Peek at the first element. int result; if (!cq.TryPeek(out result)) { Console.WriteLine("CQ: TryPeek failed when it should have succeeded"); } else if (result != 0) { Console.WriteLine("CQ: Expected TryPeek result of 0, got {0}", result); } int outerSum = 0; // An action to consume the ConcurrentQueue. Action action = () => { int localSum = 0; int localValue; while (cq.TryDequeue(out localValue)) localSum += localValue; Interlocked.Add(ref outerSum, localSum); }; // Start 4 concurrent consuming actions. Parallel.Invoke(action, action, action, action); Console.WriteLine("outerSum = {0}, should be 49995000", outerSum); }
相关文章推荐
- C# 同步/并发队列ConcurrentQueue
- 黑马程序员——Java5中的线程并发库(二)--Semaphore实现信号灯、其他同步函数、可阻塞的队列、同步集合
- C# 并发队列ConcurrentQueue
- c# 高效的线程安全队列ConcurrentQueue(下) Segment类
- FIFO队列并发同步访问 C++ 实现 ~~~
- C# .net 集合-并发处理(List<t>集合换成ConcurrentQueue、ConcurrentDictionary )
- 【C#】55. .Net中的并发集合——ConcurrentQueue
- C#并行编程-并发集合 - 释迦苦僧 - 博客园
- 线程安全的集合类(java并发编程第5章)
- 用并发队列(ConcurrentQueue)实现多线程任务中随时异步回调进度通知(.Net4.0)
- c#集合之二队列
- C#线程 在某一时间内,只有N个线程在并发执行,其余都在队列中的实现
- 【死磕Java并发】—– J.U.C之AQS:CLH同步队列
- Java7并发编程--3.3、CyclicBarrier在集合点同步
- java-并发集合-阻塞队列 LinkedBlockingQueue 演示
- 【C#】56. .Net中的并发集合——ConcurrentStack
- 【Java并发编程实战】—– AQS(四):CLH同步队列
- C#集合之队列
- Java多线程 阻塞队列和并发集合
- C#线程 在某一时间内,只有N个线程在并发执行,其余都在队列中的实现