队列Queue笔记

简介:

复制代码
using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Text;
using  System.Threading;

namespace  ConsoleApplication2
{
class  Program
{
static   void  Main( string [] args)
{
DocumentManager dm 
=   new  DocumentManager();
ProcessDocument.Start(dm);

for  ( int  i  =   0 ; i  <   1000 ; i ++ )
{
Document doc 
=   new  Document( " Doc  "   +  i,  " Content " );
dm.AddDocument(doc);
Console.WriteLine(
" Added document Doc  " +  i);
Thread.Sleep(
new  Random().Next( 20 ));
}
}
}


public   class  DocumentManager
{
private   readonly  Queue < Document >  documentQueue  =   new  Queue < Document > ();

public   void  AddDocument(Document doc)
{
lock  ( this )
{
documentQueue.Enqueue(doc);
}
}

public  Document GetDocument()
{
Document doc 
=   null ;
lock  ( this )
{
doc 
=  documentQueue.Dequeue();
}
return  doc;
}

public   bool  IsDocumentAvailable
{
get  {
return  documentQueue.Count  >   0 ;
}
}
}

public   class  ProcessDocument
{
private  DocumentManager documentManager;

protected  ProcessDocument(DocumentManager dm)
{
this .documentManager  =  dm;
}

public   static   void  Start(DocumentManager dm)
{
new  Thread( new  ProcessDocument(dm).Run).Start();
}

protected   void  Run()
{
while  ( true )
{
if  (documentManager.IsDocumentAvailable)
{
Document doc 
=  documentManager.GetDocument();
Console.WriteLine(
" Processing document {0} " ,doc.Title);
}
Thread.Sleep(
new  Random().Next( 20 ));
}
}
}
}

复制代码



本文转自黄聪博客园博客,原文链接:http://www.cnblogs.com/huangcong/archive/2010/05/13/1734500.html,如需转载请自行联系原作者
相关文章
|
7月前
|
存储 算法
数据结构与算法:队列
在上篇文章讲解了栈之后,本篇也对这一章进行收尾,来到队列!
数据结构与算法:队列
|
6月前
|
算法 调度 Python
数据结构与算法-队列篇
数据结构与算法-队列篇
38 3
|
7月前
|
机器学习/深度学习 存储 算法
队列——“数据结构与算法”
队列——“数据结构与算法”
|
7月前
|
存储 算法 Java
【数据结构与算法】7、队列(Queue)的实现【用栈实现队列】
【数据结构与算法】7、队列(Queue)的实现【用栈实现队列】
83 0
|
算法 索引 Python
数据结构与算法-(8)---队列(Queue)
数据结构与算法-(8)---队列(Queue)
71 1
|
存储 缓存 安全
|
算法 Java
【数据结构与算法】深入理解队列(下)
【数据结构与算法】深入理解队列(下)
142 2
【数据结构与算法】深入理解队列(下)
|
消息中间件 缓存 负载均衡
消息发送3-选择队列|学习笔记
快速学习消息发送3-选择队列
消息发送3-选择队列|学习笔记
|
消息中间件 算法 前端开发
数据结构与算法—队列详解
栈和队列是一对好兄弟,前面我们介绍过数据结构与算法—栈详解,那么栈的机制相对简单,后入先出,就像进入一个狭小的山洞,山洞只有一个出口,只能后进先出(在外面的先出去)。而队列就好比是一个隧道,后面的人跟着前面走,前面人先出去(先入先出)。日常的排队就是队列运转形式的一个描述!
136 0
数据结构与算法—队列详解