public class DoubleCacheQueue<T>
{
public DoubleCacheQueue()
{ }
public T Dequeue()
{
T t = default(T);
if (readQueue.Count > 0)
t= readQueue.Dequeue();
else
{
writeQueue = Interlocked.Exchange<Queue<T>>(ref readQueue, writeQueue);
}
return t;
}
public void Enqueue(T item)
{
writeQueue.Enqueue(item);
}
public int Count
{
get { return readQueue.Count; }
}
//读缓冲
private Queue<T> readQueue = new Queue<T>();
//写缓冲
private Queue<T> writeQueue = new Queue<T>();
}
问下大家,这段代码能保证多线程安全吗?
慕妹3146593
繁花不似锦
海绵宝宝撒
交互式爱情