日期:2014-05-18  浏览次数:20958 次

C#多个线程访问一个队列问题,请大侠们帮帮忙
现有一个队列,一个线程向里面写,一个线程往外取,还可能有一个线程检查队列中的项是否过期,请问应该怎么设计保证线程同步,以及访问的安全问题

------解决方案--------------------
典型的P-V(生产者消费者)问题。Google下“C# 生产者消费者”
------解决方案--------------------
这个的确典型,
你可以看下clr via c# 第二版 中文版
神作,特别是线程部分讲的特别好
虽然旧了点,但是免费的

资料分割成2部分,
都下载过来再解压即可
框架设计 CLR Via C#.part1.rar
http://ishare.iask.sina.com.cn/f/16962600.html?retcode=0框架设计 CLR Via C#.part2.rar
http://ishare.iask.sina.com.cn/f/16962601.html?from=like
------解决方案--------------------
排他锁
不明白

------解决方案--------------------
加队列,出队列锁一下就可以了, 检查的时候,不用加锁。
------解决方案--------------------
选择一个好的数据结构很重要啊,可以用.net 4.0里的ConcurrentQueue<T>
------解决方案--------------------
防止读的时候被其他线程改了 那你读的就是过时的
探讨
为什么生产者-消费者问题中读取也需要锁对象喃

------解决方案--------------------
参考 C#生产者和消费者
http://kb.cnblogs.com/page/42530/