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

C#中queue的问题
我有2个线程,一收一发
收线程速度很快,收到后直接入队列X,发线程先判断X.count是否大于0,然后从X队列dequeue头部一个元素发出去

现在运行的时候,经常发现X队列dequeue出来的东西是null(已经保证enqueue不是null,而且队列长度大于0才会dequeue)

还有的时候发现enqueue的时候提示数组长度不够

查了一下好像是因为线程间协调出问题了,要用到什么lock free queue的技术才能解决,没太弄明白什么意思



------解决方案--------------------
典型的生产者-消费者算法。