02 线程队列

import queue


# 一:先进先出队列
# q = queue.Queue(3)  #先进先出 fifo first in first out
# q.put(1)
# q.put(2)
# # print('当前队列内容长度',q.qsize())
# q.put(3)
# print('查看队列是否满了',q.full())
# try:
#     q.put_nowait(4)  # 报错queue.Full
# except Exception:
#     print('队列满了')
# print(q.get())
# print(q.get())
# print('查看队列是否为空',q.empty())
# print(q.get())
# print('查看队列是否为空',q.empty())
# try:
#     q.get_nowait()  # queue.Empty
# except Exception:
#     print('队列空了')

# 二 先进后出队列,或者后进先出,类似于栈
# q = queue.LifoQueue(3)
#
# q.put(1)
# q.put(2)
# q.put(3)
#
# print(q.get())
# print(q.get())
# print(q.get())


#优先级队列
q = queue.PriorityQueue(5)
# q.put((5,'alex'))
# q.put((2,'宝宝'))
# q.put((7,'大力'))

# q.put((5,(2,3)))
q.put((5,(2,3)))  #如果说值里面的元素是数字类型,那么当两个值的优先级相同时,比较的是两个值的大小,小的优先被取出来
#如果元素是字符串,那么依次比较每个字母的ascii表中的位置,小的优先被取出来
# q.put((2,{'x':3}))
# q.put((5,(1,2)))
q.put((5,(2,2,3)))
# q.put((2,'zalex'))
# q.put((-1,'yubing'))
# q.put((2,{'k':666})) #如果优先级数字相同,如果数据类型不同会报错
# q.put((2,('a','b')))
# q.put((1,(1,2)))
# q.put((3,(1,2)))
# q.put((-10,(1,2)))
print(q.get())
print(q.get())
print(q.get())
print(q.get())
print(q.get())

  

原文地址:https://www.cnblogs.com/work14/p/10267254.html