python 队列

队列常用方法

Python中的队列是一种数据结构,遵循先进先出(FIFO)的原则。在Python中,你可以使用内置模块queue提供的Queue类来实现队列数据结构。队列是一种常见的数据结构,用于按照特定顺序处理数据项,例如任务调度、数据缓冲、事件处理等。

  1. qsize():返回队列的大小。
  2. empty():如果队列为空,返回True,反之False。
  3. full():如果队列满了,返回True,反之False。Queue.full与maxsize大小对应。
  4. get([block[, timeout]]):获取队列,timeout等待时间。
  5. put(item):[block[, timeout]]:写入队列,timeout等待时间。
  6. task_done():在完成一项工作之后,Queue.task_done()函数向任务已经完成的队列发送一个信号。每个get()调用得到一个任务,接下来task_done()调用告诉队列该任务已经处理完毕。
  7. join():线程阻塞,直到队列中的所有任务处理完毕。

先进先出队列

import queue

q=queue.Queue(5) #如果不设置,默认无限长
print('队列长度',q.maxsize)

q.put(1,block=True,timeout=1)  #block=True表示写入操作是阻塞的,阻塞时间有timeout决定。
#当队列写满的时候,队列会被阻塞,直到其他线程取走数据。block=Flase 非阻塞的
print('队列真实长度',q.qsize())
print(q.get())
#取数据默认是阻塞的
print('队列真实长度',q.qsize())

 python 队列_第1张图片

后进先出队列

import queue

q = queue.LifoQueue()
q.put(12)
q.put(34)
print(q.get())

 

优先级队列

优先级数越小,则优先级越高

import queue
q = queue.PriorityQueue()
q.put((3,'aaaaa'))
q.put((3,'bbbbb'))
q.put((1,'ccccc'))
q.put((3,'ddddd'))
print(q.get())
print(q.get())

 

双线队列

import queue
q = queue.deque()
q.append(123)
q.append(456)
q.appendleft(780)
print(q)
print(q.pop())
print(q.popleft())

python 队列_第2张图片

你可能感兴趣的:(python)