按照一篇出色的文章的指导,我遇到了需要解决的问题。如何实现线程安全类队列的push和pop方法?
一个简单的锁就可以了。
var synchro = new object();
var queue = new Queue<int>();
lock(synchro)
{
queue.Enqueue(123); // Add to queue
}
lock(synchro)
{
var num = queue.Dequeue(); // Remove from queue
}
另外,您也可以ConcurrentQueue
结合使用BlockingCollection
,和,但灵活性较差。例如,您不能安全地同时添加或删除多个项目。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句