美文网首页
Python中使用Queue

Python中使用Queue

作者: MontyOak | 来源:发表于2017-07-09 17:12 被阅读52次

在大多数情况下,我们经常会遇到多线程的情况。线程间的同步和互斥、数据共享等都有可能会引发问题。
在某些情况下,我们需要通过mutex、condition、event等提供的机制和方法来确保同步和互斥的问题,稍有不慎就会陷入死锁或者威胁到线程间数据的安全。
这时候,Queue给我们提供了一种较为简便的解决方案。
Queue包含三种队列:

  • Queue.Queue(maxsize) 指传统意义上常见的队列:先进先出,队长为maxsize
  • Queue.LifoQueue(maxsize) 后进先出,数据结构上等同于传统意义上的栈
  • Queue.PriorityQueue(maxsize) 优先级队列

需要额外注意的是,Queue模块本身提供了锁原语,模块层面上支持多线程数据共享,是线程安全的。相比collections.dequeQueue旨在提供线程安全的解决方法,API操作自带锁原语,而collections.deque更偏重于数据结构中的队列概念,支持 in查询。
最后需要提一句的是,Python中的import机制也是线程安全的,它利用串行引入的机制保证这一点。

相关文章

网友评论

      本文标题:Python中使用Queue

      本文链接:https://www.haomeiwen.com/subject/iztehxtx.html