简介
使用队列方法进行多线程之间的信息交互
队列
- 队列 First in First out
- 可以存储不同的数据类型,例如整数、字符串、字典
- 使用put放数据
- 使用get取数据(如果当前队列中没有数据,此时会堵塞)
import queueq = queue.Queue()
q.put(11)
q.put(22)
q.put({'num':5})print(q.get())
print(q.get())
print(q.get())
11
22
{‘num’:5}
堆栈队列
- 堆栈队列 Last in First out
- 可以存储不同的数据类型,例如整数、字符串、字典
- 使用put放数据
- 使用get取数据(如果当前队列中没有数据,此时会堵塞)
import queueq = queue.LifoQueue()
q.put(11)
q.put(22)
q.put({'num':5})print(q.get())
print(q.get())
print(q.get())
{‘num’:5}
11
22
优先级队列
- 优先级队列:根据优先级来确定当前要获取的数据
- 使用put存放
1. 将一个元组放到里面
2. 第1个元素是:优先级,数字越小优先级越高
3. 第2个元素是:要存放的数据 - 使用get来获取(如果当前队列中没有数据,此时会堵塞)
import queueq = queue.PriorityQueue()
q.put((10, 'Q'))
q.put((30, 'Z'))
q.put((20, 'A'))
print(q.get())
print(q.get())
print(q.get())
(10, ‘Q’)
(20, ‘A’)
(30, ‘Z’)