代码大致是这样的:
Queue<ITask> tasks = new Queue<ITask>();
添加:
tasks.Enqueue(value);
取值:
while (tasks.Count > 0)
{
temp = tasks.Dequeue();
}
多线程的环境,一个线程取值,多个线程添加。在不加锁的情况下,取值居然会取到null值。
希望用过Queue类的兄弟来聊聊这个类的性能、线程安全方面的情况。
Queue<ITask> tasks = new Queue<ITask>();
添加:
tasks.Enqueue(value);
取值:
while (tasks.Count > 0)
{
temp = tasks.Dequeue();
}
多线程的环境,一个线程取值,多个线程添加。在不加锁的情况下,取值居然会取到null值。
希望用过Queue类的兄弟来聊聊这个类的性能、线程安全方面的情况。
等比因子是当需要更大容量时当前容量要乘以的数字。在构造 Queue 时确定增长因子。默认增长因子为 2.0.
Queue 接受 空引用(在 Visual Basic 中为 Nothing) 作为有效值并且允许重复的元素
是Enqueue进去时造成的null,还是Dequeue出来时发生的null.我试验出来的是Enqueue进去时造成的null。
lock (tasks)
{
tasks.Enqueue(value);
}