Python queue 模块
实例
创建一个先进先出(FIFO)队列,放入一个元素,然后再将其取出:
import queue
q = queue.Queue()
q.put('task1')
print(q.get())
亲自试一试 »
定义和用法
创建一个先进先出 (FIFO) 队列,放入一个元素,然后将其取出:
队列模块为多生产者、多消费者场景提供同步队列类。
使用它可以通过 FIFO、LIFO 或优先级顺序在线程之间安全地传递工作。
成员
| 成员 | 描述 |
|---|---|
| Empty | 当非阻塞的 get 操作发现队列为空时,会引发异常。 |
| Full | 当非阻塞的 put 操作发现队列已满时,会引发异常。 |
| LifoQueue | 线程安全的后进先出队列(栈)。 |
| PriorityQueue | 线程安全的优先级队列(最低优先级优先)。 |
| Queue | 线程安全的 FIFO 队列。 |
| ShutDown | 对已关闭的队列调用 put() 或 get() 时会引发异常(3.13+)。 |
| SimpleQueue | 使用最少锁的无界 FIFO 队列。 |
| empty() | 如果队列为空,则返回 True,否则返回 False。 |
| full() | 如果队列已满,则返回 True,否则返回 False。 |
| get() | 从队列中移除并返回一个元素。 |
| get_nowait() | 移除并返回一个元素,不阻塞队列(如果队列为空,则引发 Empty 异常)。 |
| join() | 阻塞队列,直到所有任务都处理完毕。 |
| put() | 将一个元素放入队列。 |
| put_nowait() | 将一个元素放入队列而不阻塞(如果队列已满,则引发 Full 异常)。 |
| qsize() | 返回队列的大致大小。 |
| shutdown() | 关闭队列,阻止进一步的 put() 操作(3.13+)。 |
| task_done() | 指示先前入队的任务已完成。 |

