System.Collections.Generic.Queue
MSDN定义为:先进先出的集合,允许null值,并且可以重复,值可以为引用类型。其默认的容量为32,默认的增长因子为2.0.
可以使用Enqueue() 方法将对象添加到Queue的结尾处.
使用Dequeue() 方法将开始处的对象移除并返回该对象。
注意:多个线程同时给Queue添加或移除对象时,请使用lock线程锁,防止并发。
消息队列,就是给任务发了一连串的邮件,官员(任务)拿到这一大摞文件,可以从底部或者顶部(LIFO or FIFO)一个一个拆开处理。
System.Threading.Semaphore(信号量):
MSDN定义为:限制可同时访问某一资源或资源池的线程数。
使用 Semaphore 类可控制对资源池的访问。
线程通过调用 WaitOne 方法(从 WaitHandle 类继承)进入信号量,并通过调用 Release 方法释放信号量。
信号量就是中央政府发给官人做一方大员的官印,有很多种官印但是不能一印多发,得到官印者才能掌权鱼肉一方百姓(任务得到信号量才能运行),否则你就只要等官跑官。
以上红体字转自:http://bbs.ednchina.com/BLOG_ARTICLE_242653.HTM