python 中双端队列的使用

来源:http://www.sh-fengwen.com 作者:鲜果干果 人气:145 发布时间:2019-11-07
摘要:Pythonqueue队列 from collections import dequeq = deque([], 5) # 长度为5q.append() # 入队。当反复入队,长度超过5时,最早入队的元素会被抛弃。 作用: 解耦:使程序直接实现松耦合,修改一个函数

Python queue队列

from collections import deque


q = deque([], 5) # 长度为5
q.append()       # 入队。当反复入队,长度超过5时,最早入队的元素会被抛弃。

作用:

   解耦:使程序直接实现松耦合,修改一个函数,不会有串联关系。

   提高处理效率:FIFO = 现进先出,LIFO = 后入先出。

 

队列:

  队列可以并发的派多个线程,对排列的线程处理,并切每个需要处理线程只需要将请求的数据放入队列容器的内存中,线程不需要等待,当排列完毕处理完数据后,线程在准时来取数据即可。请求数据的线程只与这个队列容器存在关系,处理数据的线程down掉不会影响到请求数据的线程,队列会派给其他线程处理这分数据,它实现了解耦,提高效率。队列内会有一个有顺序的容器,列表与这个容器是有区别的,列表中数据虽然是排列的,但数据被取走后还会保留,而队列中这个容器的数据被取后将不会保留。当必须在多个线程之间安全地交换信息时,队列在线程编程中特别有用。

 

Python四种类型的队例:

Queue:FIFO 即first in first out 先进先出

LifoQueue:LIFO 即last in first out 后进先出

PriorityQueue:优先队列,级别越低,越优先
deque:双边队列


导入三种队列,包

from queue import Queue,LifoQueue,PriorityQueue

 

Queue 先进先出队列:

#基本FIFO队列  先进先出 FIFO即First in First Out,先进先出
#maxsize设置队列中,数据上限,小于或等于0则不限制,容器中大于这个数则阻塞,直到队列中的数据被消掉
q = Queue(maxsize=0)

#写入队列数据
q.put(0)
q.put(1)
q.put(2)

#输出当前队列所有数据
print(q.queue)
#删除队列数据,并返回该数据
q.get()
#输也所有队列数据
print(q.queue)

# 输出:
# deque([0, 1, 2])
# deque([1, 2])

 

LifoOueue 后进先出队列:

本文由美高梅游戏平台网站发布于鲜果干果,转载请注明出处:python 中双端队列的使用

关键词:

上一篇:Python基础《 持续更新 》

下一篇:没有了

最火资讯