线程常用队列有: queue LifoQueue PriorityQueue
语法: 大致和进程队列语法一致
put 往队列当中放值,超过队列长度,直接加阻塞
get 如果获取不到加阻塞
put_nowait 如果放入的超过了队列长度,直接报异常错误
get_nowait 如果获取到直接报异常错误
(1) queue 先进先出
# 第一种写法:
from queue import Queue
# q = Queue()
#第二种写法:
import queue
q = queue.Queue()
q.put(1)
q.put(2)
print(q.get()) # 1
(2)LifoQueue 后进先出
from queue import LifoQueue
lq = LifoQueue()
lq.put(1)
lq.put(2)
lq.put('aaa')
print(lq.get()) # aaa
(3)PriorityQueue 按照优先级排序
#1.放入元组,先按照前面数字进行排列,如果数字相同,再按照ascii吗从小到大排序
from queue import PriorityQueue
pq = PriorityQueue()
pq.put((13, 'abc'))
pq.put((5, "ccc"))
pq.put((5, "bcc"))
pq.put((15, "bbb"))
print(pq.get()) # (5, 'bcc')
print(pq.get()) # (5, 'ccc')
print(pq.get()) # (13, 'abc')
print(pq.get()) # (15, 'bbb')
(4) 单独一个元素的,只能是都放同一种类型
pq = PriorityQueue()
pq.put(15)
pq.put(13)
pq.put(3)
# pq.put("3434") 报错
print(pq.get())
print(pq.get())
print(pq.get())
# print(pq.get())