模块之queue的功能介绍
队列的分类:
队列主要要分为两种
1.双向队列
2.单项队列
1. 单项队列
-
创建单项队列
格式:queue.Queue(obj)
例如:que = queue.Queue('abc')
返回值:queue.Queue
#创建单项队列时的参数可以是任意对象,无论传入的参数是什么,该队列始终是空的。 -
empty(判断队列是否是空的)
格式:queue.Queue(obj).empty()
例如:que = queue.Queue('abc')
print(que.empty())
>>> True
返回值:bool
#通过直接创建的单项队列,永远都是空的。 -
full(判断队列是否满了)
格式:queue.Queue(obj).full()
例如:que = queue.Queue('abc')
print(que.full())
>>> False
返回值:bool
#判断队列是否满了,与maxsize相对应。 -
get(获取队列中的一个项)
格式:queue.Queue(obj).get(block=True,timeout=None)
例如:que = queue.Queue()
que.put('abc')
print(que.get())
>>> 'abc'
返回值:obj
#取出队列中的一个项,由于单项队列只能先进先出,当队列中的项不止一个时,则直接获取第一个被放入队列中的项。 -
get_nowait(获取队列的一个项)
格式:queue.Queue(obj).get_nowait()
#方法同上 join
-
put(上传一个项)
格式:queue.Queue(obj).put(item,block=True,timeout=None)
例如:que = queue.Queue()
print(que.put('abc'))
>>> None
返回值:None
#向队列里面放一个项,一次只能放一个项。 -
put_nowait(上传一个项)
格式:queue.Queue(obj).put_nowait()
#方法同上 -
qsize(队列长度)
格式:queue.Queue(obj).qsize()
例如:que = queue.Queue()
print(que.qsize())
>>> 0
返回值:int
#返回队列的长度 - task_done
2. 双向队列
创建方法:
格式:queue.deque(iterable[,maxlen])
返回值:collections.deque
注:queue模块中的queue.deque与collections模块中的collections.deque的功能是一样的,因此这里不作详细介绍。