python 标准库中队列相关模块介绍(子博客)

queue:

  提供了同步(线程安全)类 Queue ,LifoQueue 和 PriorityQueue ,不同的线程可以利用这些数据类型来交换信息。这三个类的构造方法都有一个可选参数 maxsize ,它接受正整数作为输入值,用来限定队列的大。但是在满员的时候,这些类不会扔掉旧的元素来腾出位置。相反,如果队列满了,它就会被锁住,知道另外的线程移除了某个元素而腾出了位置。这一特性让这些类和适合用来控制活跃线程的数量。

multiprocessing:

  

  这个包实现了自己的 Queue ,它跟 queue.Queue 类似,时设计给进程间通信用的。同时还有一个专门的 

multiprocessing.JoinableQueue 类型,可以让任务管理变得更方便。

asyncio:

  python 3.4 新提供的包,里面有 Queue ,LifoQueue ,PriorityQueue 和 JoinableQueue ,这些类受到

queue 和 multiprocess 模块的影响,但是为异步编程里的任务管理提供了专门的便利。

heapq:

  跟上面三个模块不同的是,heapq 没有队列类,而是提供了 heappush 和 heappop 方法,让用户可以把可变序列当作堆队列或者优先队列来使用。

 

posted @ 2018-03-13 21:03  皇昭仪  阅读(193)  评论(0编辑  收藏  举报