线程队列

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)))
q.put((1,(1,2)))
q.put((1,22))
print(q.get())
print(q.get())
# print(q.get())
# print(q.get())
# print(q.get())




猜你喜欢

转载自www.cnblogs.com/16795079a/p/10316323.html
今日推荐